php

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

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

Синтаксис:

Синтаксисът на функцията usort () е даден по-долу.

Булево usort (масив $ array, callback ())

Тази функция има два аргумента. И двата аргумента са задължителни. Първият аргумент взема масива, който ще бъде сортиран. Функцията за обратно извикване () сравнява стойностите на масива, за да сортира масива и връща числова стойност. Ако аргументите на функцията callback () са равни, тогава функцията ще върне 0. Ако първият аргумент на функцията callback () е по-голям от втория аргумент, той ще върне 1. Ако първият аргумент на функцията callback () е по-малък от втория аргумент, той връща -1. Функцията usort () връща true за успешно сортиране и връща false за неуспешно сортиране. Някои приложения на тази функция са показани в следващата част на този урок.

Пример-1: Сортиране на масив от стойности на датата

Следващият пример показва как масив от стойности на датата може да бъде сортиран правилно с помощта на функцията usort (). Създайте PHP файл със следния скрипт. $ date_array се дефинира с петдневни стойности. дата на сортиране () функция е декларирана като функция за обратно извикване за сортиране на $ date_array. Стойностите на масива се отпечатват преди извикване на функцията usort (). Когато функцията usort () бъде извикана с масива и функцията за обратно извикване, тя ще преобразува две стойности за дата в стойности за времеви клей с помощта на функцията strtotime (). Ако двете стойности на клеймо са равни, функцията ще върне 0. Ако стойността на първия времеви отпечатък е по-голяма от втората стойност, тогава функцията ще върне 1. Ако стойността на първия клеймо е по-ниска от стойността на втория клеймо, функцията ще върне -1. функцията usort () ще извика функцията за обратно извикване няколко пъти, докато $ date_array е сортирано правилно. След това сортираният масив ще бъде отпечатан с помощта на за всеки цикъл.

// Дефиниране на функцията за обратно извикване
функция sort_date ($ a, $ b)
връщане strtotime ($ a) - strtotime ($ b);

// Декларираме масива от стойности на датата
$ date_array = масив ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Отпечатваме стойностите на масива преди сортиране
ехо "

Стойностите на масива от дати:

";
foreach ($ date_array като $ стойност)

ехо $ стойност."
";

// Сортиране на масива с помощта на usort ()
usort ($ date_array, "sort_date");
// Отпечатваме масива след сортиране
ехо "

Резултатът след сортиране на масив от дати:

";
foreach ($ date_array като $ стойност)

ехо $ стойност."
";

?>

Изход:

Следният изход ще се появи след стартиране на скрипта от сървъра.

Пример-2: Сортиране на асоциативен масив

Следващият пример показва как асоциативен масив може да бъде сортиран с помощта на функцията usort (). Създайте PHP файл със следния скрипт. имена на сортиране () функция се обявява за функция за обратно извикване за сортиране на масива въз основа на стойностите на масива. Троичният оператор се използва в имена на сортиране () функция за сравняване на стойностите на асоциативния масив. Ако двете стойности са равни, функцията за обратно извикване ще върне 0. Ако стойността на първия аргумент е по-голяма от стойността на втория аргумент, функцията за обратно извикване ще върне 1. Ако стойността на първия аргумент е по-малка от стойността на втория аргумент, функцията за обратно извикване ще върне -1. usort () ще сортира масива с помощта на функцията за обратно извикване и сортираният масив ще бъде отпечатан с помощта на за всеки цикъл.

// Дефинирайте функцията за сортиране на асоциативния масив
функция за сортиране на имена ($ a, $ b)
върнете $ a == $ b ? 0: $ a> $ b ? 1: -1;

// Дефиниране на асоциативния масив
$ лица = масив ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Сортиране на масива
usort ($ persons, "sort_names");
// Печат на сортирания масив
ехо "Стойностите на сортирания масив:
";
foreach ($ лица като $ човек)
ехо $ човек. "
";
?>

Изход:

Следният изход ще се появи след стартиране на скрипта от сървъра.

Пример-3: Сортиране на двуизмерен масив

Следващият пример показва как двумерен масив може да бъде сортиран с помощта на функцията usort (). Създайте PHP файл със следния скрипт. sort_array () функция се обявява за функция за обратно извикване за сортиране на масива въз основа на стойностите на масива. Функцията strcmp () се използва във функцията за обратно извикване за сравняване на стойностите на масива. Ако двете стойности са равни, функцията strcmp () ще върне 0. Ако стойността на първия аргумент е по-голяма от стойността на втория аргумент, функцията strcmp () ще върне 1. Ако стойността на първия аргумент е по-малка от стойността на втория аргумент, функцията strcmp () ще върне -1. usort () ще сортира масива с помощта на функцията за обратно извикване, а структурата на сортирания масив ще бъде отпечатана с помощта на print_r () функция.

// Дефиниране на функция за сортиране на двуизмерен масив
функция sort_array ($ a, $ b)

връщане на strcmp ($ a ['a'], $ b ['a']);

// Декларираме двумерния масив
$ animals = масив (масив ("a" => "Лъв"), масив ("a" => "Елен"), масив ("a" => "Заек"), масив ("a" => "Маймуна "));
// Сортиране на масива
usort ($ animals, "sort_array");
// Печат на сортирания масив
ехо "Стойностите на масива след usort ():
";
print_r ($ животни);
ехо "
";
?>

Изход:

Следният изход ще се появи след стартиране на скрипта от сървъра.

Заключение:

usort () е полезна функция за сортиране на определени типове данни, които не могат да сортират правилно функциите на PHP за нормално сортиране. Функцията за обратно извикване на функцията usort () се дефинира въз основа на видовете стойности, които са необходими за сортиране. Този урок ще помогне на читателите да знаят как да използват функцията usort () и да я приложат в своя скрипт въз основа на изискването.

Как да промените курсора на мишката и размера на курсора, цвета и схемата в Windows 10
Показалецът на мишката и курсорът в Windows 10 са много важни аспекти на операционната система. Това може да се каже и за други операционни системи, т...
Безплатни и игри с отворен код за разработване на Linux игри
Тази статия ще обхване списък с безплатни двигатели за игри с отворен код, които могат да се използват за разработване на 2D и 3D игри на Linux. Същес...
Урок Сянка на Tomb Raider за Linux
Shadow of the Tomb Raider е дванадесетото допълнение към поредицата Tomb Raider - франчайз за екшън-приключенска игра, създаден от Eidos Montreal. Игр...