php

Uporaba funkcije usort () v PHP

Uporaba funkcije usort () v PHP
V PHP obstaja veliko vgrajenih funkcij za razvrščanje spremenljivk polja. funkcija usort () je ena izmed njih. Ta funkcija razvrsti polje z uporabniško določeno funkcijo povratnega klica. Kadar matrika vsebuje določeno vrsto podatkov, ki jih ni mogoče razvrstiti na standarden način z uporabo drugih funkcij razvrščanja, je bolje uporabiti usort (). Če na primer matrika vsebuje podatkovne vrednosti, sorte ni mogoče ustrezno razvrstiti z drugimi funkcijami razvrščanja PHP. To vrsto zbirke lahko razvrstite tako, da določite pravilno uporabniško določeno funkcijo, poklicano v drugem argumentu funkcije usort (), kako lahko funkcija usort () razvrsti določene vrednosti matrike, prikazane v tej vadnici.

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 klica
datum_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 matrike
ime_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 matrike
niz_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.

Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...
Najboljše laboratorijske igre Oculus App
Če ste lastnik slušalk Oculus, morate biti seznanjeni s stranskim nalaganjem. Sideloading je postopek namestitve vsebine, ki ni shranjena v slušalke. ...
10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...