Bruk av USORT -funksjon i PHP

Bruk av USORT -funksjon i PHP
Mange innebygde funksjoner finnes i PHP for å sortere matrisevariablene. USORT () -funksjonen er en av dem. Denne funksjonen sorterer matrisen ved å bruke en brukerdefinert tilbakeringingsfunksjon. Når matrisen inneholder en bestemt type data som ikke kan være sortert på en standard måte ved å bruke andre sorteringsfunksjoner, er usort () bedre å bruke. For eksempel, hvis matrisen inneholder dataverdier, kan ikke sorten sorteres på riktig måte ved hjelp av andre sorteringsfunksjoner av PHP. Denne typen samling kan være sortert ved å definere riktig brukerdefinerte funksjon som kalles i det andre argumentet til USORT () -funksjonen hvordan usort () -funksjonen kan sortere de spesifikke arrayverdiene som vises i denne opplæringen.

Syntaks:

Syntaksen til USORT () -funksjonen er gitt nedenfor.

Boolean USORT (Array $ Array, Callback ())

Denne funksjonen har to argumenter. Begge argumentene er obligatoriske. Det første argumentet tar matrisen som vil bli sortert. Tilbakekallende () -funksjonen sammenligner matrisens verdier for å sortere matrisen og returnerer en numerisk verdi. Hvis argumentene til tilbakeringingsfunksjonen er like, vil funksjonen returnere 0. Hvis det første argumentet for tilbakeringingsfunksjonen er større enn det andre argumentet, vil det returnere 1. Hvis det første argumentet for tilbakeringingsfunksjonen er mindre enn det andre argumentet, returnerer den -1. USORT () -funksjonen returnerer sann for vellykket slags og returnerer falsk for mislykket slags. Noen bruksområder av denne funksjonen har vist i neste del av denne opplæringen.

Eksempel-1: Sorter en rekke datoverdier

Følgende eksempel viser hvordan en rekke datoverdier kan sorteres riktig ved bruk av USORT () -funksjonen. Opprett en PHP -fil med følgende skript. $ date_array er definert med fem-date verdier. sort_date () funksjon er erklært som tilbakeringingsfunksjon for å sortere $ date_array. Array -verdiene skrives ut før de kaller USORT () -funksjonen. Når USORT () -funksjonen kalles med matrisen og tilbakeringingsfunksjonen, vil den konvertere to datoverdier til tidsstempelverdier ved bruk av strtotime () -funksjonen. Hvis de to tidsstempelverdiene er like, vil funksjonen returnere 0. Hvis den første tidsstempelverdien er større enn den andre tidsstempelverdien, vil funksjonen returnere 1. Hvis den første tidsstempelverdien er lavere enn den andre tidsstempelverdien, vil funksjonen returnere -1. USORT () -funksjonen vil ringe tilbakeringingsfunksjonen flere ganger til $ date_array sorteres ordentlig. Deretter vil den sorterte matrisen bli skrevet ut ved hjelp av for hver Løkke.

// definere tilbakeringingsfunksjonen
funksjon sort_date ($ a, $ b)
Return strTotime ($ a) - strTotime ($ b);

// erklære rekke datoverdier
$ date_array = Array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Skriv ut arrayverdiene før sortering
ekko "

Verdiene på datooppstillingen:

";
foreach ($ date_array som $ verdi)

ekko $ verdi.""
";

// Sorter matrisen ved hjelp av USORT ()
usort ($ date_array, "sort_date");
// Skriv ut matrisen etter sortering
ekko "

Utgangen etter sorteringsdato -array:

";
foreach ($ date_array som $ verdi)

ekko $ verdi.""
";

?>

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet fra serveren.

Eksempel-2: Sorter et assosiativt utvalg

Følgende eksempel viser hvordan en assosiativ matrise kan sorteres ved hjelp av USORT () -funksjonen. Opprett en PHP -fil med følgende skript. sort_names () Funksjon er erklært en tilbakeringingsfunksjon for å sortere matrisen basert på matriseverdiene. Den ternære operatøren brukes i sort_names () Funksjon for å sammenligne Associative Arrays verdier. Hvis de to verdiene er like, vil tilbakeringingsfunksjonen returnere 0. Hvis den første argumentverdien er større enn den andre argumentverdien, vil tilbakeringingsfunksjonen returnere 1. Hvis den første argumentverdien er mindre enn den andre argumentverdien, vil tilbakeringingsfunksjonen returnere -1. usort () vil sortere matrisen ved å bruke tilbakeringingsfunksjonen, og den sorterte matrisen vil bli skrevet ut ved hjelp av for hver Løkke.

// definere funksjonen for å sortere den assosiative matrisen
Funksjon Sorternames ($ a, $ b)
Returner $ a == $ b ? 0: $ a> $ b ? 1: -1;

// definere det assosiative matrisen
$ Persons = Array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Sorter matrisen
usort ($ personer, "sort_names");
// Skriv ut den sorterte matrisen
ekko "Verdiene til den sorterte matrisen:
";
Foreach ($ personer som $ person)
ekko $ person. ""
";
?>

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet fra serveren.

Eksempel-3: Sorter en todimensjonal matrise

Følgende eksempel viser hvordan en todimensjonal matrise kan sorteres ved hjelp av USORT () -funksjonen. Opprett en PHP -fil med følgende skript. sort_array () Funksjon er erklært en tilbakeringingsfunksjon for å sortere matrisen basert på matriseverdiene. STRCMP () -funksjon brukes i tilbakeringingsfunksjonen for å sammenligne verdiene til matrisen. Hvis de to verdiene er like, vil strcmp () -funksjonen returnere 0. Hvis den første argumentverdien er større enn den andre argumentverdien, vil strcmp () -funksjonen returnere 1. Hvis den første argumentverdien er mindre enn den andre argumentverdien, vil strcmp () -funksjonen returnere -1. usort () vil sortere matrisen ved å bruke tilbakeringingsfunksjonen, og strukturen til den sorterte matrisen vil bli skrevet ut ved hjelp av print_r () funksjon.

// definere funksjon for å sortere todimensjonal matrise
funksjon sort_array ($ a, $ b)

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

// erklære den todimensjonelle matrisen
$ dyr = matrise (matrise ("a" => "løve"), array ("a" => "hjort"), array ("a" => "kanin"), array ("a" => "Monkey "));
// Sorter matrisen
usort ($ dyr, "sort_array");
// Skriv ut den sorterte matrisen
ekko "Arrayverdiene etter Usort ():
";
print_r ($ dyr);
ekko "
";
?>

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet fra serveren.

Konklusjon:

USORT () er en nyttig funksjon for å sortere bestemte typer data som ikke kan sortere PHPs normale sorteringsfunksjoner riktig. USORT () -funksjonens tilbakeringingsfunksjon er definert basert på hva slags verdier som kreves for å sortere. Denne opplæringen vil hjelpe leserne å vite hvordan de skal bruke USORT () -funksjonen og bruke den i skriptet sitt basert på kravet.