php

Upotreba funkcije usort () u PHP-u

Upotreba funkcije usort () u PHP-u
U PHP-u postoje mnoge ugrađene funkcije za sortiranje varijabli niza. funkcija usort () jedna je od njih. Ova funkcija sortira niz pomoću korisnički definirane funkcije povratnog poziva. Kada niz sadrži određenu vrstu podataka koji se ne mogu sortirati na standardni način korištenjem drugih funkcija sortiranja, tada je bolje koristiti usort (). Na primjer, ako niz sadrži vrijednosti podataka, tada se sorta ne može prikladno sortirati pomoću drugih funkcija sortiranja u PHP-u. Ova vrsta kolekcije može se sortirati definiranjem odgovarajuće korisnički definirane funkcije koja se poziva u drugom argumentu funkcije usort () kako funkcija usort () može sortirati određene vrijednosti polja prikazane u ovom vodiču.

Sintaksa:

Sintaksa funkcije usort () dana je u nastavku.

Logičko usort (niz $ array, povratni poziv ())

Ova funkcija ima dva argumenta. Oba su argumenta obavezna. Prvi argument uzima niz koji će biti sortiran. Funkcija povratnog poziva () uspoređuje vrijednosti polja da bi sortirala niz i vraća numeričku vrijednost. Ako su argumenti funkcije callback () jednaki, tada će funkcija vratiti 0. Ako je prvi argument funkcije callback () veći od drugog argumenta, vratit će 1. Ako je prvi argument funkcije callback () manji od drugog argumenta, vraća -1. funkcija usort () vraća true za uspješno sortiranje i vraća false za neuspješno sortiranje. Neke upotrebe ove funkcije prikazane su u sljedećem dijelu ovog vodiča.

Primjer-1: Poredaj niz vrijednosti datuma

Sljedeći primjer pokazuje kako se niz vrijednosti datuma može pravilno sortirati pomoću funkcije usort (). Stvorite PHP datoteku sa sljedećom skriptom. $ date_array definiran je s petodatnim vrijednostima. datum_razvrstavanja () funkcija deklarirana je kao funkcija povratnog poziva za sortiranje $ date_array. Vrijednosti polja ispisuju se prije pozivanja funkcije usort (). Kada se funkcija usort () pozove s nizom i funkcijom povratnog poziva, pretvorit će dvije vrijednosti datuma u vrijednosti vremenske oznake pomoću funkcije strtotime (). Ako su dvije vrijednosti vremenske oznake jednake, tada će funkcija vratiti 0. Ako je vrijednost prve vremenske oznake veća od vrijednosti druge vremenske oznake, tada će funkcija vratiti 1. Ako je vrijednost prve vremenske oznake niža od vrijednosti druge vremenske oznake, funkcija će vratiti -1. funkcija usort () pozvat će funkciju povratnog poziva više puta dok se $ date_array je sortirano pravilno. Zatim će se sortirani niz ispisati pomoću za svakog petlja.

// Definiraj funkciju povratnog poziva
funkcija sort_date ($ a, $ b)
vratiti strtotime ($ a) - strtotime ($ b);

// Deklariraj niz vrijednosti datuma
$ date_array = niz ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Ispis vrijednosti niza prije sortiranja
jeka "

Vrijednosti polja s datumima:

";
foreach ($ date_array kao $ vrijednost)

odjek $ vrijednost."
";

// Sortiranje niza pomoću usort ()
usort ($ date_array, "sort_date");
// Ispis niza nakon sortiranja
jeka "

Izlaz nakon sortiranja niza datuma:

";
foreach ($ date_array kao $ vrijednost)

odjek $ vrijednost."
";

?>

Izlaz:

Sljedeći će se izlaz pojaviti nakon pokretanja skripte s poslužitelja.

Primjer-2: Poredaj asocijativni niz

Sljedeći primjer pokazuje kako se asocijativni niz može sortirati pomoću funkcije usort (). Stvorite PHP datoteku sa sljedećom skriptom. imena_razvrstavanja () funkcija proglašava se funkcijom povratnog poziva za sortiranje niza na temelju vrijednosti niza. Ternarni operator koristi se u imena_razvrstavanja () funkcija za usporedbu vrijednosti asocijativnog polja. Ako su dvije vrijednosti jednake, tada će funkcija povratnog poziva vratiti 0. Ako je vrijednost prvog argumenta veća od vrijednosti drugog argumenta, tada će funkcija povratnog poziva vratiti 1. Ako je vrijednost prvog argumenta manja od vrijednosti drugog argumenta, tada će funkcija povratnog poziva vratiti -1. usort () će sortirati niz pomoću funkcije povratnog poziva, a sortirani niz ispisat će se pomoću za svakog petlja.

// Definirajte funkciju za sortiranje asocijativnog polja
ime_razvrstavanja funkcije ($ a, $ b)
vrati $ a == $ b ? 0: $ a> $ b ? 1: -1;

// Definiraj asocijativni niz
$ persons = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Poredaj niz
usort ($ persons, "sort_names");
// Ispis sortiranog polja
jeka "Vrijednosti razvrstanog polja:
";
foreach ($ osoba kao $ osoba)
odjek $ osoba. "
";
?>

Izlaz:

Sljedeći će se izlaz pojaviti nakon pokretanja skripte s poslužitelja.

Primjer-3: Poredaj dvodimenzionalni niz

Sljedeći primjer pokazuje kako se dvodimenzionalni niz može sortirati pomoću funkcije usort (). Stvorite PHP datoteku sa sljedećom skriptom. sort_array () funkcija proglašava se funkcijom povratnog poziva za sortiranje niza na temelju vrijednosti niza. funkcija strcmp () koristi se u funkciji povratnog poziva za usporedbu vrijednosti niza. Ako su dvije vrijednosti jednake, tada će funkcija strcmp () vratiti 0. Ako je vrijednost prvog argumenta veća od vrijednosti drugog argumenta, tada će funkcija strcmp () vratiti 1. Ako je vrijednost prvog argumenta manja od vrijednosti drugog argumenta, tada će funkcija strcmp () vratiti -1. usort () će sortirati niz pomoću funkcije povratnog poziva, a struktura sortiranog polja ispisat će se pomoću print_r () funkcija.

// Definiraj funkciju za sortiranje dvodimenzionalnog niza
funkcija sortiraj_ niz ($ a, $ b)

vrati strcmp ($ a ['a'], $ b ['a']);

// Deklarirajte dvodimenzionalni niz
$ životinje = niz (niz ("a" => "Lav"), niz ("a" => "Jelen"), niz ("a" => "Zec"), niz ("a" => "Majmun "));
// Poredaj niz
usort ($ životinje, "sort_array");
// Ispis sortiranog polja
jeka "Vrijednosti niza nakon usort ():
";
print_r ($ životinje);
jeka "
";
?>

Izlaz:

Sljedeći će se izlaz pojaviti nakon pokretanja skripte s poslužitelja.

Zaključak:

usort () je korisna funkcija za sortiranje određenih vrsta podataka koji ne mogu pravilno sortirati PHP-ove uobičajene funkcije sortiranja. Funkcija povratnog poziva funkcije usort () definirana je na temelju vrsta vrijednosti koje su potrebne za sortiranje. Ovaj vodič pomoći će čitateljima da znaju kako koristiti funkciju usort () i primijeniti je u svojoj skripti na temelju zahtjeva.

Bitka za Wesnoth 1.13.6 Razvoj objavljen
Bitka za Wesnoth 1.13.6 objavljeno prošlog mjeseca, šesto je razvojno izdanje u izdanju 1.13.x series i donosi niz poboljšanja, ponajviše korisničkog ...
Kako instalirati League Of Legends na Ubuntu 14.04
Ako ste ljubitelj League of Legends, ovo je prilika za vas da testirate League of Legends. Imajte na umu da je LOL podržan na PlayOnLinux ako ste kori...
Instalirajte najnoviju strategiju igre OpenRA na Ubuntu Linux
OpenRA je Libre / Free Real Time strateški pokretač igre koji stvara rane Westwoodove igre poput klasične Command & Conquer: Red Alert. Distribuirani ...