Syntaks:
Syntaksen til usort () -funksjonen er gitt nedenfor.
Boolsk usort (array $ array, callback ())Denne funksjonen har to argumenter. Begge argumentene er obligatoriske. Det første argumentet tar matrisen som skal sorteres. Callback () -funksjonen sammenligner matrisenes verdier for å sortere matrisen og returnerer en numerisk verdi. Hvis argumentene til tilbakeringing () -funksjonen er like, vil funksjonen returnere 0. Hvis det første argumentet for tilbakeringing () -funksjonen er større enn det andre argumentet, vil det returnere 1. Hvis det første argumentet for tilbakeringing () -funksjonen er mindre enn det andre argumentet, returnerer det -1. usort () -funksjonen returnerer true for vellykket sortering og returnerer false for mislykket sortering. Noen bruksområder for denne funksjonen har vist seg i neste del av denne veiledningen.
Eksempel 1: Sorter en rekke datoverdier
Følgende eksempel viser hvordan en rekke datoverdier kan sorteres riktig ved hjelp av usort () -funksjonen. Opprett en PHP-fil med følgende skript. $ date_array er definert med fem-dato-verdier. sorteringsdato () funksjon er erklært som tilbakeringingsfunksjon for å sortere $ date_array. Feltverdiene skrives ut før du ringer til usort () -funksjonen. Når usort () -funksjonen kalles med array og tilbakeringingsfunksjonen, vil den konvertere to datoverdier til tidsstempelverdier ved hjelp av funksjonen strtotime (). 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 tilbake funksjonen flere ganger til $ date_array er ordnet ordentlig. Deretter skrives den sorterte matrisen ut med den for hver Løkke.
// Definer tilbakeringingsfunksjonenfunksjon sort_date ($ a, $ b)
retur strtotime ($ a) - strtotime ($ b);
// Deklarer matrisen med datoverdier
$ date_array = array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Skriv ut matrixverdiene før sortering
ekko "
Verdiene til dataarrayen:
";foreach ($ date_array som $ verdi)
ekko $ verdi."
";
// Sorter matrisen med usort ()
usort ($ date_array, "sort_date");
// Skriv ut matrisen etter sortering
ekko "
Utdata etter sorteringsdato-array:
";foreach ($ date_array som $ verdi)
ekko $ verdi."
";
?>
Produksjon:
Følgende utdata vises når du har kjørt skriptet fra serveren.
Eksempel 2: Sorter en assosiativ matrise
Følgende eksempel viser hvordan en assosiativ matrise kan sorteres ved hjelp av usort () -funksjonen. Opprett en PHP-fil med følgende skript. sorteringsnavn () funksjon blir erklært en tilbakeringingsfunksjon for å sortere matrisen basert på matriseverdiene. Den ternære operatøren brukes i sorteringsnavn () funksjon for å sammenligne verdiene for den tilknyttede matrisen. 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 hjelp av tilbakeringingsfunksjonen, og den sorterte matrisen vil bli skrevet ut med den for hver Løkke.
// Definer funksjonen for å sortere den assosiative matrisenfunksjon sort_names ($ a, $ b)
returner $ a == $ b ? 0: $ a> $ b ? 1: -1;
// Definer den assosiative matrisen
$ persons = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Sorter matrisen
usort ($ persons, "sort_names");
// Skriv ut den sorterte matrisen
ekko "Verdiene til den sorterte matrisen:
";
foreach ($ personer som $ person)
ekko $ person. "
";
?>
Produksjon:
Følgende utdata vises når du har 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 blir erklært en tilbakeringingsfunksjon for å sortere matrisen basert på matriseverdiene. strcmp () -funksjonen brukes i tilbakeringingsfunksjonen for å sammenligne verdiene til matrisen. Hvis de to verdiene er like, vil funksjonen strcmp () 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 funksjonen strcmp () returnere -1. usort () vil sortere matrisen ved hjelp av tilbakeringingsfunksjonen, og strukturen til den sorterte matrisen vil bli skrevet ut med print_r () funksjon.
// Definer funksjon for å sortere todimensjonalt arrayfunksjon sort_array ($ a, $ b)
return strcmp ($ a ['a'], $ b ['a']);
// Deklarer den todimensjonale matrisen
$ animal = array (array ("a" => "Lion"), array ("a" => "Deer"), array ("a" => "Rabbit"), 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 utdata vises når du har 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å hvilke verdier som kreves for å sortere. Denne opplæringen vil hjelpe leserne å vite hvordan du bruker usort () -funksjonen og bruke den i skriptet basert på kravet.