Оглавление
СинтаксисСинтаксис функции сравненияСортировка массива чиселСортировка массива строк по длинеСортировка массива объектовИспользование статического метода класса в качестве callbackИтог
Функция PHP usort
До этого вы уже знакомились с сортировкой массива с помощью встроенных операторов сравнения. Например, функция
sort() сортирует массив чисел, используя встроенные механизмы сравнения PHP.Если же требуется задать собственный порядок сортировки, применяется функция
usort()Синтаксис
$array- сортируемый массив.$callback- пользовательская функция сравнения.
Функция возвращает
true при успешной сортировке и false при ошибке.Синтаксис функции сравнения
Функция сравнения принимает два элемента массива и возвращает:
0, если элементы равны;- отрицательное число, если первый элемент должен идти раньше второго;
- положительное число, если после.
Сортировка массива чисел
Результат:
Для сортировки по убыванию поменяйте местами возвращаемые значения:
В PHP 7 и новее удобно использовать оператор "космический корабль"
<=>:Для краткости можно использовать стрелочные функции (PHP 7.4+):
Сортировка массива строк по длине
Результат:
Сортировка массива объектов
Создадим класс
Person и отсортируем массив по возрасту:Для сортировки по имени используйте сравнение
$x->name <=> $y->name.Использование статического метода класса в качестве callback
Здесь первым элементом массива указывается имя класса, вторым имя статического метода.
Итог
Функция
usort() позволяет гибко сортировать массивы по любому пользовательскому критерию с помощью собственной функции сравнения.
