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 tagasihelistamisfunktsioonfunktsioon 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 funktsioonfunktsioon 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 sorteerimiseksfunktsioon 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.