Синтаксис:
Синтаксис функции usort () приведен ниже.
Логическое значение usort (массив $ array, callback ())Эта функция имеет два аргумента. Оба аргумента обязательны. Первый аргумент принимает массив, который будет отсортирован. Функция callback () сравнивает значения массива для сортировки массива и возвращает числовое значение. Если аргументы функции callback () равны, функция вернет 0. Если первый аргумент функции callback () больше, чем второй аргумент, он вернет 1. Если первый аргумент функции callback () меньше, чем второй аргумент, он возвращает -1. Функция usort () возвращает true для успешной сортировки и false для неудачной сортировки. Некоторые варианты использования этой функции показаны в следующей части этого руководства.
Пример-1: Сортировка массива значений даты
В следующем примере показано, как правильно отсортировать массив значений даты с помощью функции usort (). Создайте файл PHP со следующим скриптом. $ date_array определяется пятидатными значениями. sort_date () функция объявлена как функция обратного вызова для сортировки $ date_array. Значения массива печатаются перед вызовом функции usort (). Когда функция usort () вызывается с массивом и функцией обратного вызова, она преобразует два значения даты в значения отметок времени с помощью функции strtotime (). Если два значения отметки времени равны, функция вернет 0. Если значение первой метки времени больше, чем значение второй метки времени, функция вернет 1. Если значение первой метки времени ниже, чем значение второй метки времени, функция вернет -1. Функция usort () будет вызывать функцию обратного вызова несколько раз, пока $ date_array отсортировано правильно. Затем отсортированный массив будет напечатан с использованием для каждого петля.
// Определяем функцию обратного вызоваfunction sort_date ($ a, $ b)
return strtotime ($ a) - strtotime ($ b);
// Объявляем массив значений даты
$ date_array = array ('25-03-2020 ', '14-03-2020', '28-02-2015 ', '09-12-2017', '20-09-2015 ');
// Распечатываем значения массива перед сортировкой
эхо "
Значения массива дат:
";foreach ($ date_array как $ value)
эхо $ значение."
";
// Сортируем массив с помощью usort ()
usort ($ date_array, "sort_date");
// Распечатываем массив после сортировки
эхо "
Вывод после сортировки массива дат:
";foreach ($ date_array как $ value)
эхо $ значение."
";
?>
Выход:
Следующий вывод появится после запуска скрипта с сервера.
Пример-2: Сортировка ассоциативного массива
В следующем примере показано, как можно отсортировать ассоциативный массив с помощью функции usort (). Создайте файл PHP со следующим скриптом. sort_names () объявлена функция обратного вызова для сортировки массива на основе значений массива. Тернарный оператор используется в sort_names () функция сравнения значений ассоциативного массива. Если два значения равны, функция обратного вызова вернет 0. Если значение первого аргумента больше, чем значение второго аргумента, функция обратного вызова вернет 1. Если значение первого аргумента меньше значения второго аргумента, функция обратного вызова вернет -1. usort () отсортирует массив с помощью функции обратного вызова, и отсортированный массив будет напечатан с использованием для каждого петля.
// Определяем функцию для сортировки ассоциативного массиваfunction sort_names ($ a, $ b)
вернуть $ a == $ b ? 0: $ a> $ b ? 1: -1;
// Определяем ассоциативный массив
$ people = array ("1001" => "Мира Али", "1002" => "Кабир Хосейн", "1003" => "Нурджахан Актер");
// Сортируем массив
usort ($ person, "sort_names");
// Распечатываем отсортированный массив
эхо "Значения отсортированного массива:
";
foreach ($ человек как $ человек)
эхо $ человек. "
";
?>
Выход:
Следующий вывод появится после запуска скрипта с сервера.
Пример-3: Сортировка двумерного массива
В следующем примере показано, как можно отсортировать двумерный массив с помощью функции usort (). Создайте файл PHP со следующим скриптом. sort_array () объявлена функция обратного вызова для сортировки массива на основе значений массива. Функция strcmp () используется в функции обратного вызова для сравнения значений массива. Если два значения равны, функция strcmp () вернет 0. Если значение первого аргумента больше, чем значение второго аргумента, функция strcmp () вернет 1. Если значение первого аргумента меньше значения второго аргумента, функция strcmp () вернет -1. usort () отсортирует массив с помощью функции обратного вызова, и структура отсортированного массива будет напечатана с использованием print_r () функция.
// Определяем функцию для сортировки двумерного массивафункция sort_array ($ a, $ b)
return strcmp ($ a ['a'], $ b ['a']);
// Объявляем двумерный массив
$ animals = array (array ("a" => "Lion"), array ("a" => "Deer"), array ("a" => "Rabbit"), array ("a" => "Monkey "));
// Сортируем массив
usort ($ animals, "sort_array");
// Распечатываем отсортированный массив
эхо "Значения массива после usort ():
";";
print_r ($ животные);
эхо "
?>
Выход:
Следующий вывод появится после запуска скрипта с сервера.
Заключение:
usort () - полезная функция для сортировки определенных типов данных, которые не могут правильно отсортировать обычные функции сортировки PHP. Функция обратного вызова функции usort () определяется на основе типов значений, которые требуются для сортировки. Это руководство поможет читателям узнать, как использовать функцию usort () и применять ее в своем скрипте в соответствии с требованиями.