php

Funktsiooni usort () kasutamine PHP-s

Funktsiooni usort () kasutamine PHP-s
Massiivimuutujate sortimiseks on PHP-s palju sisseehitatud funktsioone. funktsioonortort () on üks neist. See funktsioon sorteerib massiivi kasutaja määratud tagasihelistamisfunktsiooni abil. Kui massiiv sisaldab teatud tüüpi andmeid, mida ei saa tavapäraselt sortida muude sortimisfunktsioonide abil, on parem kasutada usort (). Näiteks kui massiiv sisaldab andmeväärtusi, siis ei saa sorti PHP muude sortimisfunktsioonide abil sobivalt sorteerida. Seda tüüpi kollektsioone saab sortida, määrates õige kasutaja määratud funktsiooni, mida nimetatakse funktsiooni usort () teises argumendis, kuidas funktsioon usort () saab selles õpetuses näidatud konkreetseid massiivi väärtusi sortida.

Süntaks:

Funktsiooni usort () süntaks on toodud allpool.

Boole'i ​​sort (massiiv $ array, tagasihelistamine ())

Sellel funktsioonil on kaks argumenti. Mõlemad argumendid on kohustuslikud. Esimene argument võtab sorteeritava massiivi. Funktsioon Callback () võrdleb massiivi väärtusi massiivi sortimiseks ja tagastab arvulise väärtuse. Kui funktsiooni callback () argumendid on võrdsed, tagastab funktsioon 0. Kui funktsiooni callback () esimene argument on suurem kui teine ​​argument, tagastab see 1. Kui funktsiooni callback () esimene argument on väiksem kui teine ​​argument, tagastab see -1. funktsioon usort () tagastab eduka sorteerimise korral tõene ja ebaõnnestunud sortimise korral vale. Selle funktsiooni mõningaid kasutusviise on näidatud selle õpetuse järgmises osas.

Näide 1: sortige kuupäevaväärtuste massiiv

Järgmine näide näitab, kuidas kuupäevaväärtuste massiivi saab funktsiooni usort () abil õigesti sorteerida. Looge järgmise skriptiga PHP-fail. $ date_array on määratletud viie kuupäeva väärtustega. sort_date () funktsioon deklareeritakse tagasihelistamisfunktsioonina $ date_array. Massiiviväärtused prinditakse enne funktsiooni usort () kutsumist. Kui funktsiooni usort () kutsutakse massiivi ja tagasihelistamisfunktsiooniga, teisendab see funktsiooni strtotime () abil kaks kuupäeva väärtust ajatempli väärtuseks. Kui kaks ajatempli väärtust on võrdsed, tagastab funktsioon 0. Kui esimese ajatempli väärtus on suurem kui teise ajatempli väärtus, tagastab funktsioon 1. Kui esimese ajatempli väärtus on väiksem kui teise ajatempli väärtus, tagastab funktsioon -1. funktsioon usort () kutsub tagasihelistamisfunktsiooni mitu korda, kuni $ date_array on korralikult sorteeritud. Järgmisena trükitakse sorteeritud massiiv kasutades igaühele silmus.

// Määrake tagasihelistamisfunktsioon
funktsioon sort_date ($ a, $ b)
tagastage strtotime ($ a) - strtotime ($ b);

// Kuulake kuupäevaväärtuste massiiv
$ date_array = array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Enne sortimist printige massiivi väärtused
kaja "

Kuupäevamassiivi väärtused:

";
foreach ($ date_array väärtusena $)

kaja $ väärtus."
";

// Sorteeri massiiv usort () abil
usort ($ date_array, "sort_date");
// Trükkige massiiv pärast sortimist
kaja "

Väljund pärast kuupäeva massiivi sorteerimist:

";
foreach ($ date_array väärtusena $)

kaja $ väärtus."
";

?>

Väljund:

Järgmine väljund ilmub pärast skripti käivitamist serverist.

Näide 2: assotsiatiivse massiivi sortimine

Järgmine näide näitab, kuidas assotsiatiivset massiivi saab sortida funktsiooni usort () abil. Looge järgmise skriptiga PHP-fail. sort_names () funktsioon kuulutatakse tagasihelistamisfunktsiooniks massiivi sortimiseks massiivi väärtuste alusel. Kolmekordset operaatorit kasutatakse sort_names () funktsioon assotsiatiivse massiivi väärtuste võrdlemiseks. Kui need kaks väärtust on võrdsed, tagastab tagasihelistamisfunktsioon 0. Kui esimese argumendi väärtus on suurem kui teise argumendi väärtus, tagastab tagasihelistamisfunktsioon 1. Kui esimese argumendi väärtus on väiksem kui teise argumendi väärtus, tagastab tagasihelistamisfunktsioon -1. usort () sorteerib massiivi tagasihelistamise funktsiooni abil ja sorteeritud massiiv prinditakse igaühele silmus.

// Määratlege assotsiatiivmassiivi sortimise funktsioon
funktsioon sort_names ($ a, $ b)
tagastage $ a == $ b ? 0: $ a> $ b ? 1: -1;

// Määratlege assotsiatiivne massiiv
$ persons = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Sorteeri massiiv
usort ($ isikud, "sort_nimed");
// Sorteeritud massiivi printimine
kaja "Sorteeritud massiivi väärtused:
";
foreach ($ inimest kui $ inimest)
kaja $ inimene. "
";
?>

Väljund:

Järgmine väljund ilmub pärast skripti käivitamist serverist.

Näide 3: kahemõõtmelise massiivi sortimine

Järgmine näide näitab, kuidas kahemõõtmelist massiivi saab sortida funktsiooni usort () abil. Looge järgmise skriptiga PHP-fail. sort_array () funktsioon nimetatakse tagasihelistusfunktsiooniks massiivi sortimiseks massiivi väärtuste alusel. funktsiooni strcmp () kasutatakse tagasihelistamisfunktsioonis massiivi väärtuste võrdlemiseks. Kui need kaks väärtust on võrdsed, tagastab funktsioon strcmp () 0. Kui esimese argumendi väärtus on suurem kui teise argumendi väärtus, tagastab funktsioon strcmp () 1. Kui esimese argumendi väärtus on väiksem kui teise argumendi väärtus, tagastab funktsioon strcmp () -1. usort () sorteerib massiivi tagasihelistamise funktsiooni abil ja sorteeritud massiivi struktuur prinditakse print_r () funktsioon.

// Määratlege funktsioon kahemõõtmelise massiivi sorteerimiseks
funktsioon sort_array ($ a, $ b)

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

// Deklareerige kahemõõtmeline massiiv
$ animals = massiiv (massiiv ("a" => "Lõvi"), massiiv ("a" => "Hirv"), massiiv ("a" => "Jänes"), massiiv ("a" => "Ahv "));
// Sorteeri massiiv
usort ($ loomad, "sort_array");
// Sorteeritud massiivi printimine
kaja "Massiivi väärtused pärast sortimist ():
";
print_r ($ loomad);
kaja "
";
?>

Väljund:

Järgmine väljund ilmub pärast skripti käivitamist serverist.

Järeldus:

usort () on kasulik funktsioon teatud tüüpi andmete sortimiseks, mis ei suuda PHP tavapäraseid sortimisfunktsioone õigesti sorteerida. Funktsiooni usort () tagasihelistamisfunktsioon määratletakse sortide tegemiseks vajalike väärtuste tüüpide põhjal. See õpetus aitab lugejal teada funktsiooni usort () kasutamist ja rakendada seda oma skriptis, lähtudes nõudest.

Hiire keskmine nupp ei tööta Windows 10-s
The hiire keskmine nupp aitab teil sirvida pikki rohke andmega veebisaite ja ekraane. Kui see peatub, siis lõpuks kasutate kerimiseks klaviatuuri, mis...
Kuidas muuta hiire vasakut ja paremat nuppu Windows 10 PC-s
On üsna tavaline, et kõik arvutihiirte seadmed on ergonoomiliselt mõeldud parempoolsete kasutajate jaoks. Kuid on olemas hiire seadmeid, mis on spetsi...
Jäljendage hiireklikke, hõljutades hiirega klõpsutut hiirt Windows 10-s
Hiire või klaviatuuri kasutamine liigses kasutamises vales asendis võib põhjustada palju terviseprobleeme, sealhulgas tüve, karpaalkanali sündroom ja ...