(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
array_unique — Убирает повторяющиеся значения из массива
Принимает входной массив array
и возвращает новый массив без повторяющихся значений.
Обратите внимание, что ключи сохранятся. Если в соответствии с заданными flags
несколько элементов определяются как идентичные, то будут сохранены ключ и значение первого такого элемента.
Замечание: Два элемента считаются одинаковыми в том и только в том случае, если
(string) $elem1 === (string) $elem2
. Другими словами: если у них одинаковое строковое представление, то будет использован первый элемент.
array
Входной массив.
flags
Можно использовать необязательный второй параметр flags
для изменения поведения сравнения с помощью следующих значений:
Флаги видов сравнения:
SORT_REGULAR
- нормальное сравнение элементов (типы не меняются)SORT_NUMERIC
- элементы сравниваются как числаSORT_STRING
- элементы сравниваются как строкиSORT_LOCALE_STRING
- сравнивает элементы как строки, с учётом текущей локали. Возвращает отфильтрованный массив.
Версия | Описание |
---|---|
7.2.0 | Если flags равен SORT_STRING , ранее массив array копировался, а не уникальные элементы удалялись (сохраняя значения цифровых индексов), но теперь создаётся новый массив путём добавления уникальных элементов. Это может привести к различным числовым индексам. |
Пример #1 Пример использования array_unique()
<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>
Результат выполнения приведённого примера:
Array ( [a] => green [0] => red [1] => blue )
Пример #2 array_unique() и типы:
<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>
Результат выполнения приведённого примера:
array(2) { [0] => int(4) [2] => string(1) "3" }
Замечание: Обратите внимание, что array_unique() не предназначена для работы с многомерными массивами.