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