Sintakse:
Funkcijas usort () sintakse ir sniegta zemāk.
Būla lietotājs (masīvs $ masīvs, atzvanīšana ())Šai funkcijai ir divi argumenti. Abi argumenti ir obligāti. Pirmais arguments ņem masīvu, kas tiks sakārtots. Funkcija Callback () salīdzina masīva vērtības, lai kārtotu masīvu, un atgriež skaitlisku vērtību. Ja atzvana () funkcijas argumenti ir vienādi, funkcija atgriezīs 0. Ja atzvanīšanas () funkcijas pirmais arguments ir lielāks nekā otrais arguments, tas atgriezīs 1. Ja atzvanīšanas () funkcijas pirmais arguments ir mazāks nekā otrais arguments, tas atgriež -1. funkcija usort () veiksmīgai kārtošanai atgriež vērtību true, bet neveiksmīga kārtošana - vērtību false. Daži šīs funkcijas izmantošanas veidi ir parādīti šīs apmācības nākamajā daļā.
1. piemērs: kārtojiet datumu vērtību masīvu
Šis piemērs parāda, kā datumu vērtību masīvu var kārtot pareizi, izmantojot funkciju usort (). Izveidojiet PHP failu ar šādu skriptu. $ date_array ir definēts ar piecu datumu vērtībām. sort_date () funkcija tiek deklarēta kā atzvanīšanas funkcija, lai kārtotu $ date_array. Masīva vērtības tiek izdrukātas pirms funkcijas usort () izsaukšanas. Kad funkcija usort () tiek izsaukta ar masīvu un atzvanīšanas funkciju, tā pārvērš divas datuma vērtības laika zīmoga vērtībās, izmantojot funkciju strtotime (). Ja abas laika zīmoga vērtības ir vienādas, funkcija atgriezīs 0. Ja pirmā laika zīmoga vērtība ir lielāka nekā otrā laika zīmoga vērtība, funkcija atgriezīs 1. Ja pirmā laika zīmoga vērtība ir mazāka nekā otrā laika zīmoga vērtība, funkcija atgriezīsies -1. funkcija usort () vairākas reizes izsauks atzvanīšanas funkciju, līdz $ date_array ir kārtots pareizi. Pēc tam kārtotais masīvs tiks izdrukāts, izmantojot katram cilpa.
// Definējiet atzvanīšanas funkcijufunkcija sort_date ($ a, $ b)
atgriezties strtotime ($ a) - strtotime ($ b);
// Deklarēt datumu vērtību masīvu
$ date_array = masīvs ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Pirms kārtošanas izdrukājiet masīva vērtības
atbalss "
Datuma masīva vērtības:
";foreach ($ date_array kā $ vērtība)
echo $ vērtība."
";
// Kārtojiet masīvu, izmantojot usort ()
usort ($ date_array, "sort_date");
// Drukāt masīvu pēc kārtošanas
atbalss "
Rezultāts pēc datumu masīva šķirošanas:
";foreach ($ date_array kā $ vērtība)
echo $ vērtība."
";
?>
Izeja:
Pēc skripta palaišanas no servera parādīsies šāda izeja.
2. piemērs: kārtojiet asociatīvo masīvu
Šis piemērs parāda, kā asociatīvo masīvu var kārtot, izmantojot funkciju usort (). Izveidojiet PHP failu ar šādu skriptu. sort_names () funkcija tiek atzīta par atzvanīšanas funkciju, lai kārtotu masīvu, pamatojoties uz masīva vērtībām. Ternārais operators tiek izmantots sort_names () funkcija, lai salīdzinātu asociatīvā masīva vērtības. Ja abas vērtības ir vienādas, atzvanīšanas funkcija atgriezīs 0. Ja pirmā argumenta vērtība ir lielāka par otro argumenta vērtību, atzvanīšanas funkcija atgriezīs 1. Ja pirmā argumenta vērtība ir mazāka par otro argumenta vērtību, atzvanīšanas funkcija atgriezīs -1. usort () kārtos masīvu, izmantojot atzvanīšanas funkciju, un sakārtotais masīvs tiks izdrukāts, izmantojot katram cilpa.
// Definējiet funkciju, lai kārtotu asociatīvo masīvufunkcija sort_names ($ a, $ b)
atgriezt $ a == $ b ? 0: $ a> $ b ? 1: -1;
// Definējiet asociatīvo masīvu
$ personas = masīvs ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Kārtojiet masīvu
usort ($ personas, "sort_names");
// Izdrukājiet sakārtoto masīvu
atbalss "Kārtotā masīva vērtības:
";
foreach ($ personas kā $ persona)
echo $ persona. "
";
?>
Izeja:
Pēc skripta palaišanas no servera parādīsies šāda izeja.
3. piemērs: kārtojiet divdimensiju masīvu
Šis piemērs parāda, kā divdimensiju masīvu var kārtot, izmantojot funkciju usort (). Izveidojiet PHP failu ar šādu skriptu. sort_array () funkcija tiek pasludināta par atzvanīšanas funkciju, lai kārtotu masīvu, pamatojoties uz masīva vērtībām. strcmp () funkcija tiek izmantota atzvanīšanas funkcijā, lai salīdzinātu masīva vērtības. Ja abas vērtības ir vienādas, funkcija strcmp () atgriezīs 0. Ja pirmā argumenta vērtība ir lielāka par otro argumenta vērtību, funkcija strcmp () atgriezīs vērtību 1. Ja pirmā argumenta vērtība ir mazāka par otro argumenta vērtību, funkcija strcmp () atgriezīs -1. usort () kārtos masīvu, izmantojot atzvanīšanas funkciju, un sakārtotā masīva struktūra tiks izdrukāta, izmantojot print_r () funkciju.
// Definējiet funkciju divdimensiju masīva kārtošanaifunkcija sort_array ($ a, $ b)
atgriezties strcmp ($ a ['a'], $ b ['a']);
// Deklarēt divdimensiju masīvu
$ animals = masīvs (masīvs ("a" => "Lauva"), masīvs ("a" => "Briedis"), masīvs ("a" => "Trusis"), masīvs ("a" => "Pērtiķis "));
// Kārtojiet masīvu
usort ($ dzīvnieki, "sort_array");
// Izdrukājiet sakārtoto masīvu
atbalss "Masīva vērtības pēc usort ():
";";
print_r ($ dzīvnieki);
atbalss "
?>
Izeja:
Pēc skripta palaišanas no servera parādīsies šāda izeja.
Secinājums:
usort () ir noderīga funkcija tādu datu šķirošanai, kuri nevar pareizi kārtot PHP parastās kārtošanas funkcijas. Funkcijas usort () atzvanīšanas funkcija tiek definēta, pamatojoties uz vērtību veidiem, kas nepieciešami kārtošanai. Šī apmācība palīdzēs lasītājiem uzzināt, kā izmantot funkciju usort () un pielietot to savā skriptā, pamatojoties uz prasību.