Syntaksi:
Usort () -funktion syntakse on annettu alla.
Totuusarvo usort (array $ array, callback ())Tällä toiminnolla on kaksi argumenttia. Molemmat perustelut ovat pakollisia. Ensimmäisessä argumentissa otetaan lajiteltava taulukko. Callback () -toiminto vertaa matriisin arvoja taulukon lajitteluun ja palauttaa numeerisen arvon. Jos soittopyynnön () funktion argumentit ovat samat, funktio palauttaa arvon 0. Jos callback () -funktion ensimmäinen argumentti on suurempi kuin toinen argumentti, se palauttaa arvon 1. Jos callback () -funktion ensimmäinen argumentti on pienempi kuin toinen argumentti, se palauttaa -1. usort () -funktio palauttaa true-arvon onnistuneelle lajittelulle ja palauttaa false-arvon epäonnistuneelle lajittelulle. Joitakin tämän toiminnon käyttötapoja on esitetty tämän opetusohjelman seuraavassa osassa.
Esimerkki 1: Lajittele päivämääräarvojen taulukko
Seuraava esimerkki osoittaa, kuinka päivämääräarvojen taulukko voidaan lajitella oikein käyttämällä usort () -funktiota. Luo PHP-tiedosto seuraavalla komentosarjalla. $ date_array määritetään viiden päivän arvoilla. lajittelupäivä () -toiminto ilmoitetaan takaisinkutsutoiminnoksi lajittelemaan $ date_array. Taulukon arvot tulostetaan ennen kuin soitat usort () - funktiolle. Kun usort () -funktiota kutsutaan taulukon ja takaisinkutsutoiminnon kanssa, se muuntaa kaksi päivämääräarvoa aikaleiman arvoiksi käyttämällä strtotime () -funktiota. Jos kaksi aikaleiman arvoa ovat samat, funktio palauttaa arvon 0. Jos ensimmäisen aikaleiman arvo on suurempi kuin toisen aikaleiman arvo, funktio palauttaa arvon 1. Jos ensimmäisen aikaleiman arvo on pienempi kuin toisen aikaleiman arvo, funktio palauttaa arvon -1. usort () -toiminto kutsuu soittopyynnön useita kertoja, kunnes $ date_array on lajiteltu oikein. Seuraavaksi lajiteltu taulukko tulostetaan käyttämällä jokaiselle silmukka.
// Määritä takaisinsoittotoimintofunktio sort_date ($ a, $ b)
palaa strtotime ($ a) - strtotime ($ b);
// Ilmoita päivämääräarvojen taulukko
$ date_array = matriisi ('25-03-2020 ', '14-03-2020', '28-02-2015 ', '09-12-2017', '20-09-2015 ');
// Tulosta taulukon arvot ennen lajittelua
kaiku "
Päivämäärärivin arvot:
";foreach ($ date_array kuin $ arvo)
echo $ -arvo."
";
// Lajittele taulukko käyttämällä usort ()
usort ($ date_array, "sort_date");
// Tulosta taulukko lajittelun jälkeen
kaiku "
Tulos lajittelupäivämatriisin jälkeen:
";foreach ($ date_array kuin $ arvo)
echo $ -arvo."
";
?>
Tuotos:
Seuraava tulos tulee näkyviin, kun komentosarja on suoritettu palvelimelta.
Esimerkki 2: Lajittele assosiatiivinen taulukko
Seuraava esimerkki osoittaa, kuinka assosiatiivinen taulukko voidaan lajitella käyttämällä usort () -funktiota. Luo PHP-tiedosto seuraavalla komentosarjalla. lajittelu_nimet () funktio julistetaan soittopyynnöksi, jotta lajitellaan matriisi taulukon arvojen perusteella. Kolmikertaista operaattoria käytetään lajittelu_nimet () -toiminto vertaamaan assosiatiivisen taulukon arvoja. Jos nämä kaksi arvoa ovat samat, soittopyyntö palauttaa arvon 0. Jos ensimmäisen argumentin arvo on suurempi kuin toisen argumentin arvo, takaisinsoittofunktio palauttaa arvon 1. Jos ensimmäisen argumentin arvo on pienempi kuin toinen argumentin arvo, takaisinsoittofunktio palauttaa -1. usort () lajittelee taulukon takaisinsoittotoiminnon avulla, ja lajiteltu taulukko tulostetaan jokaiselle silmukka.
// Määritä assosiatiivisen taulukon lajittelutoimintofunktio lajittelunimet ($ a, $ b)
palauta $ a == $ b ? 0: $ a> $ b ? 1: -1;
// Määritä assosiatiivinen taulukko
$ persons = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Lajittele taulukko
usort ($ henkilöä, "lajittelunimet");
// Tulosta lajiteltu taulukko
kaiku "Lajitellun taulukon arvot:
";
foreach ($ henkilöä kuin $ henkilö)
echo $ henkilö. "
";
?>
Tuotos:
Seuraava tulos tulee näkyviin, kun komentosarja on suoritettu palvelimelta.
Esimerkki 3: Lajittele kaksiulotteinen taulukko
Seuraava esimerkki osoittaa, kuinka kaksiulotteinen taulukko voidaan lajitella käyttämällä usort () -toimintoa. Luo PHP-tiedosto seuraavalla komentosarjalla. sort_array () funktio julistetaan soittopyynnöksi, jotta lajitellaan matriisi taulukon arvojen perusteella. strcmp () -toimintoa käytetään takaisinsoittotoiminnossa taulukon arvojen vertaamiseen. Jos nämä kaksi arvoa ovat yhtä suuret, funktio strcmp () palauttaa arvon 0. Jos ensimmäisen argumentin arvo on suurempi kuin toinen argumentin arvo, funktio strcmp () palauttaa arvon 1. Jos ensimmäisen argumentin arvo on pienempi kuin toinen argumentin arvo, funktio strcmp () palauttaa -1. usort () lajittelee taulukon takaisinsoittotoiminnon avulla, ja lajitellun taulukon rakenne tulostetaan tulosta_r () toiminto.
// Määritä funktio lajittelemaan kaksiulotteinen taulukkofunktio sort_array ($ a, $ b)
return strcmp ($ a ['a'], $ b ['a']);
// Ilmoitetaan kaksiulotteinen taulukko
$ animals = array (array ("a" => "Lion"), array ("a" => "Deer"), array ("a" => "Rabbit"), array ("a" => "Apina "));
// Lajittele taulukko
usort ($ eläimet, "sort_array");
// Tulosta lajiteltu taulukko
kaiku "Taulukon arvot usortin () jälkeen:
";";
tulosta_r ($ eläimiä);
kaiku "
?>
Tuotos:
Seuraava tulos tulee näkyviin, kun komentosarja on suoritettu palvelimelta.
Päätelmä:
usort () on hyödyllinen toiminto lajittelemaan tietyntyyppisiä tietoja, jotka eivät pysty lajittelemaan oikein PHP: n normaaleja lajittelutoimintoja. Usort () -toiminnon takaisinkutsutoiminto määritetään lajittelun edellyttämien arvotyyppien perusteella. Tämä opetusohjelma auttaa lukijoita tietämään kuinka käyttää usort () -toimintoa ja soveltaa sitä komentosarjassaan vaatimuksen perusteella.