Сортування масивів
У 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() |