php

Usort () -toiminnon käyttö PHP ssä

Usort () -toiminnon käyttö PHP ssä
PHP: ssä on monia sisäänrakennettuja toimintoja taulukon muuttujien lajittelemiseksi. usort () -funktio on yksi niistä. Tämä toiminto lajittelee ryhmän käyttämällä käyttäjän määrittelemää takaisinsoittotoimintoa. Kun taulukko sisältää tietyntyyppistä dataa, jota ei voi lajitella tavalliseen tapaan käyttämällä muita lajittelutoimintoja, usort () on parempi käyttää. Esimerkiksi, jos taulukko sisältää data-arvoja, lajiketta ei voida lajitella asianmukaisesti käyttämällä muita PHP: n lajittelutoimintoja. Tämäntyyppinen kokoelma voidaan lajitella määrittelemällä oikea käyttäjän määrittelemä funktio, jota kutsutaan funktion usort () toisessa argumentissa, kuinka usort () -funktio voi lajitella tässä opetusohjelmassa esitetyt tietyt taulukon arvot.

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ä takaisinsoittotoiminto
funktio 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 lajittelutoiminto
funktio 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 taulukko
funktio 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.

Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
5 parasta arcade-peliä Linuxille
Nykyään tietokoneet ovat vakavia koneita, joita käytetään pelaamiseen. Jos et pääse uusiin korkeisiin pisteisiin, tiedät mitä tarkoitan. Tässä viestis...
Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...