(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 |
Раньше со значением SORT_STRING
для параметра flags
функция копировала массив array ,
удаляла из копии неуникальные элементы и после этого внутренне не упаковывала массив.
Теперь функция создаёт новый массив и добавляет в него уникальные элементы.
Это иногда приводит к разным числовым индексам.
|
Пример #1 Пример получения уникальных значений массива функцией array_unique()
<?php
$input = ["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 = [4, "4", "3", 4, 3, "3"];
$result = array_unique($input);
var_dump($result);
?>
Результат выполнения приведённого примера:
array(2) { [0] => int(4) [2] => string(1) "3" }
Замечание: Обратите внимание, функция array_unique() не рассчитана на работу с многомерными массивами.