Сортировка массивов
В 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() |