В php есть уникальная функция для массивов, которая сильно облегчает жизнь программистам. Это сортировка по уникальным его значениям. Это бывает очень полезным при выгрузке, записи данных в БД или просто выдаче пользователю уникальных значений в процессе работы скрипта.
Данная сортировка выполняется за счет функции array_unique() – удаляет повторяющиеся значения из массива с сохранением ключей.
Синтаксис: array_unique (массив [, порядок сортировки]);
[, порядок сортировки] – является не обязательным значением. О нем чуть позже.
Рассмотрим живой пример:
Пусть у нас есть массив $emailspisokaddemails с такими повторяющимися значениями (их я выделил зеленым и красным):
Array ( [0] => а [1] => а [2] => б [3] => в [4] => а [5] => е [6] => з [7] => я [8] => б )
Теперь применим функцию сортировки и выведем результат:
$emailspisokaddemails = array_unique($emailspisokaddemails);
print_r($emailspisokaddemails);
На выходе мы получим:
Array ( [0] => а [2] => б [3] => в [5] => е [6] => з [7] => я )
Заметьте после сортировки исчезли повторяющиеся значения: [1] => а, [4] => а, [8] => б. Массив перезаписался сохранением старых ключей.
Для сравнения повторяющихся значений учитывается регистр.
Дополнительные параметры сортировки:
SORT_REGULAR – стандартное сравнение элементов массива (их типы не меняются)
SORT_NUMERIC – все элементы сравниваются в числовом представлении
SORT_STRING – сравнение элементов в виде строк
SORT_LOCALE_STRING – как строки, но с учетом текущей локали.
Теперь вы сможете легко отсортировать массив по не повторяющимся значениям. Мне это пригодилось при выводе email-ов уникальных пользователей из БД.