php

Использование функции usort () в PHP

Использование функции usort () в PHP
В PHP существует множество встроенных функций для сортировки переменных массива. функция usort () - одна из них. Эта функция сортирует массив с помощью определяемой пользователем функции обратного вызова. Когда массив содержит определенный тип данных, которые нельзя отсортировать стандартным способом с помощью других функций сортировки, тогда лучше использовать usort (). Например, если массив содержит значения данных, то разнообразие не может быть соответствующим образом отсортировано с помощью других функций сортировки PHP. Этот тип коллекции можно отсортировать, определив правильную пользовательскую функцию, вызываемую во втором аргументе функции usort (), как функция usort () может сортировать определенные значения массива, показанные в этом руководстве.

Синтаксис:

Синтаксис функции 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 () и применять ее в своем скрипте в соответствии с требованиями.

Лучшие игры с отслеживанием рук
Oculus Quest недавно представил отличную идею отслеживания рук без контроллеров. С постоянно растущим числом игр и действий, которые осуществляются фо...
Как показать наложение OSD в полноэкранных приложениях и играх Linux
Игра в полноэкранные игры или использование приложений в полноэкранном режиме без отвлекающих факторов может отрезать вас от соответствующей системной...
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...