usort
(PHP 4, PHP 5, PHP 7, PHP 8)
usort — Сортує масив за значеннями використовуючи функцію користувача для порівняння елементів
Опис
usort(array &$array, callable $callback): true
Сортує array
по значениям, используя предоставленную пользователем функцию сравнения для определения порядка.
Зауваження :
Якщо обидва порівнювані значення еквівалентні, вони зберігають свій початковий порядок. До PHP 8.0.0 їх відносний порядок у відсортованому масиві не було визначено.
Зауваження: Ця функція надає нові ключі елементам
array
. Вона видалить усі існуючі ключі, а не просто переупорядкує їх.
Список параметрів
array
Вхідний масив
callback
Функція порівняння повинна повертати ціле, яке менше, дорівнює чи більше нуля, якщо перший аргумент є відповідно меншим, рівним чи більшим, ніж другий.
callback(mixed $a, mixed $b): int
Застереження
Возвращениенецілих значень з функції порівняння, таких як число з плаваючою точкою (float), призведе до внутрішнього приведення значення callback-функції, що повертається, до цілого числа (int). Таким чином, значення 0.99
и0.1
будуть приведені до цілого значення що дозволить порівняти ці значення як рівні.
Значення, що повертаються
Функція завжди повертає true
список змін
Версия | Опис |
---|---|
8.2.0 | Тип значення, що повертається тепер true ; раніше було bool. |
8.0.0 | Тепер функція видасть помилку рівня E_WARNING , якщо параметр callback-функції, переданої у параметр callback , очікує на передачу значення за посиланням. |
Приклади
Приклад #1 Приклад використання usort()****
Loading...
Результат виконання наведеного прикладу:
0: 1
1: 2
2: 3
3: 5
4: 6
Для більшого спрощення внутрішнього порівняння можна використовувати оператор spaceship (космічний корабель).
Loading...
Зауваження :
Очевидно, що для цього тривіального випадку більш підходить функція sort()
Приклад #2 Приклад використання функції usort()** з багатовимірними масивами**
Loading...
При сортуванні багатовимірного масиву змінні $a і $b містять посилання перші два індексу масиву.
Результат виконання наведеного прикладу:
$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons
Приклад #3 Приклад використання usort()с методом класса
Loading...
Результат виконання наведеного прикладу:
b
c
d
Приклад #4 Приклад використання функції usort()с применениеманонімної функції для сортування багатовимірного масиву
Loading...
Результат виконання наведеного прикладу:
y, a
x, b
z, c
Приклад #5 Приклад використання usort()** з оператором spaceship (космічний корабель)**
Оператор spaceship (космічний корабель) дозволяє прямолінійно порівнювати складові значення кількох осях. У наступному прикладі $people
сортується на прізвище, а потім на ім'я, якщо прізвище збігається.
Loading...
Результат виконання наведеного прикладу:
Baldwin, Adam
Baldwin, Alec
West, Adam
Дивіться також
- uasort() - Сортує масив користувальницькою функцією порівняння, зберігаючи асоціацію індексів
- uksort() - Сортує масив за ключами користувальницькою функцією порівняння
- Порівняння функцій сортування масивів