array_unique

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_uniqueУдаляет повторяющиеся значения из массива

Описание

array_unique(array $array, int $flags = SORT_STRING): array

Функция принимает входной массив 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() не рассчитана на работу с многомерными массивами.

Смотрите также

  • array_count_values() - Подсчитывает количество вхождений каждого отдельного значения в массиве