Сортировка массивов
В PHP есть несколько функций для сортировки массивов, на этой странице дается их общее описание.
Основные различия между функциями:
-
В одних функциях массивы (array) сортируются по ключам
элементов, в других по значениям:
$array['ключ'] = 'значение';
- В каких-то функциях связь между ключами и значениями после сортировки сохраняется, в каких-то нет. Это может приводить к тому, что ключи будут сбрасываться в числовые значения (0, 1, 2, ...).
- Различия в порядке сортировки: алфавитный, возрастающий, убывающий, числовой, естественный, случайный или определенный пользователем
- Примечание: Все функции сортировки модифицируют переданный массив, а не возвращают отсортированную копию
- Если функции определяют два элемента как равные, порядок сортировки в этом случае не определен (нестабильная сортировка).
Имя функции | Сортирует по | Сохраняет связь ключ - значение | Порядок сортировки | Похожие функции |
---|---|---|---|---|
array_multisort() | значению | ассоциативные да, числовые нет | первый массив или настройки сортировки | array_walk() |
asort() | значению | да | по возрастанию | arsort() |
arsort() | значению | да | по убыванию | asort() |
krsort() | ключу | да | по убыванию | ksort() |
ksort() | ключу | да | по возрастанию | asort() |
natcasesort() | значению | да | естественный, нечувствительный к регистру | natsort() |
natsort() | значению | да | естественный | natcasesort() |
rsort() | значению | нет | по убыванию | sort() |
shuffle() | значению | нет | случайный | array_rand() |
sort() | значению | нет | по возрастанию | rsort() |
uasort() | значению | да | определяется пользователем | uksort() |
uksort() | ключу | да | определяется пользователем | uasort() |
usort() | значению | нет | определяется пользователем | uasort() |