Sintaksa:
Sintaksa funkcije usort () je podana spodaj.
Logična vrsta (matrika $ array, povratni klic ())Ta funkcija ima dva argumenta. Oba argumenta sta obvezna. Prvi argument vzame matriko, ki bo razvrščena. Funkcija povratnega klica () primerja vrednosti matrike, da razvrsti matriko, in vrne številčno vrednost. Če so argumenti funkcije callback () enaki, bo funkcija vrnila 0. Če je prvi argument funkcije povratnega klica () večji od drugega, bo vrnil 1. Če je prvi argument funkcije povratnega klica () manjši od drugega, vrne -1. funkcija usort () vrne true za uspešno razvrščanje in vrne false za neuspešno razvrščanje. Nekatere uporabe te funkcije so prikazane v naslednjem delu te vadnice.
Primer-1: Razvrsti matriko datumskih vrednosti
Naslednji primer prikazuje, kako lahko vrsto datumskih vrednosti pravilno razvrstimo s pomočjo funkcije usort (). Ustvarite datoteko PHP z naslednjim skriptom. $ date_array je definirana s petdnevnimi vrednostmi. datum_razvrščanja () je razglašena kot funkcija povratnega klica za razvrščanje $ date_array. Vrednosti matrike se natisnejo pred klicem funkcije usort (). Ko pokličete funkcijo usort () z matriko in funkcijo povratnega klica, bo s pomočjo funkcije strtotime () pretvorila dve datumski vrednosti v vrednosti časovnega žiga. Če sta vrednosti obeh časovnih žigov enake, bo funkcija vrnila 0. Če je vrednost prvega časovnega žiga večja od druge časovne oznake, bo funkcija vrnila 1. Če je vrednost prvega časovnega žiga nižja od vrednosti drugega časovnega žiga, bo funkcija vrnila -1. funkcija usort () bo večkrat poklicala funkcijo povratnega klica, dokler funkcija $ date_array je pravilno razvrščeno. Nato bo s pomočjo natisnjeno razvrščeno polje za vsakega zanko.
// Določite funkcijo povratnega klicadatum_razvrščanja funkcije ($ a, $ b)
vrni strtotime ($ a) - strtotime ($ b);
// Deklariramo polje datumskih vrednosti
$ date_array = matrika ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Pred sortiranjem natisnemo vrednosti matrike
odmev "
Vrednosti datumskega polja:
";foreach ($ date_array kot $ vrednost)
echo $ value."
";
// Razvrsti matriko z uporabo usort ()
usort ($ date_array, "sort_date");
// Natisni matriko po razvrščanju
odmev "
Izhod po razvrščanju matrike datumov:
";foreach ($ date_array kot $ vrednost)
echo $ value."
";
?>
Izhod:
Naslednji izhod se prikaže po zagonu skripta s strežnika.
Primer-2: Razvrsti asociativno matriko
Naslednji primer prikazuje, kako lahko asociativno matriko razvrstimo s pomočjo funkcije usort (). Ustvarite datoteko PHP z naslednjim skriptom. sort_names () funkcija je razglašena za funkcijo povratnega klica za razvrščanje polja na podlagi vrednosti polja. Ternarni operator se uporablja v sort_names () funkcija za primerjavo vrednosti asociativnega polja. Če sta vrednosti enaki, bo funkcija povratnega klica vrnila 0. Če je vrednost prvega argumenta večja od vrednosti drugega argumenta, bo funkcija povratnega klica vrnila 1. Če je vrednost prvega argumenta manjša od vrednosti drugega argumenta, bo funkcija povratnega klica vrnila -1. usort () bo matriko razvrstil s funkcijo povratnega klica, sortirana matrika pa bo natisnjena z uporabo za vsakega zanko.
// Določite funkcijo za razvrščanje asociativne matrikeime_razvrščanja funkcije ($ a, $ b)
vrni $ a == $ b ? 0: $ a> $ b ? 1: -1;
// Določimo asociativno matriko
$ persons = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Razvrsti matriko
usort ($ persons, "sort_names");
// Natisni razvrščeno polje
odmev "Vrednosti razvrščene matrike:
";
foreach ($ osebe kot $ oseba)
echo $ oseba. "
";
?>
Izhod:
Naslednji izhod se prikaže po zagonu skripta s strežnika.
Primer 3: Razvrstite dvodimenzionalno matriko
Naslednji primer prikazuje, kako lahko dvodimenzionalno matriko razvrstimo s pomočjo funkcije usort (). Ustvarite datoteko PHP z naslednjim skriptom. sort_array () funkcija je razglašena za funkcijo povratnega klica za razvrščanje polja na podlagi vrednosti polja. Funkcija strcmp () se uporablja v funkciji povratnega klica za primerjavo vrednosti polja. Če sta vrednosti enaki, bo funkcija strcmp () vrnila 0. Če je vrednost prvega argumenta večja od vrednosti drugega argumenta, bo funkcija strcmp () vrnila 1. Če je vrednost prvega argumenta manjša od vrednosti drugega argumenta, bo funkcija strcmp () vrnila -1. usort () bo matriko razvrstil s funkcijo povratnega klica, struktura razvrščene matrike pa bo natisnjena z print_r () funkcijo.
// Določimo funkcijo za razvrščanje dvodimenzionalne matrikeniz_razvrsti funkcije ($ a, $ b)
vrni strcmp ($ a ['a'], $ b ['a']);
// Navedite dvodimenzionalno matriko
$ živali = polje (polje ("a" => "Lev"), polje ("a" => "Jelen"), polje ("a" => "Zajec"), polje ("a" => "Opica "));
// Razvrsti matriko
usort ($ živali, "sort_array");
// Natisni razvrščeno polje
odmev "Vrednosti polja po usort ():
";";
print_r ($ živali);
odmev "
?>
Izhod:
Naslednji izhod se prikaže po zagonu skripta s strežnika.
Zaključek:
usort () je uporabna funkcija za razvrščanje določenih vrst podatkov, ki ne morejo pravilno razvrstiti običajnih funkcij razvrščanja PHP. Funkcija povratnega klica funkcije usort () je določena na podlagi vrst vrednosti, ki so potrebne za razvrščanje. Ta vadnica bo bralcem pomagala vedeti, kako uporabiti funkcijo usort () in jo uporabiti v svojem skriptu na podlagi zahteve.