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

Дивіться також