Syntaks:
Syntaksen for usort () -funktionen er angivet nedenfor.
Boolsk usort (array $ array, callback ())Denne funktion har to argumenter. Begge argumenter er obligatoriske. Det første argument tager det array, der skal sorteres. Funktionen callback () sammenligner arrayets værdier for at sortere arrayet og returnerer en numerisk værdi. Hvis argumenterne for tilbagekaldsfunktionen () er ens, returnerer funktionen 0. Hvis det første argument i tilbagekaldsfunktionen () er større end det andet argument, returnerer det 1. Hvis det første argument i tilbagekaldsfunktionen () er mindre end det andet argument, returnerer det -1. usort () -funktionen returnerer true for vellykket sortering og returnerer falsk for mislykket sortering. Nogle anvendelser af denne funktion er vist i den næste del af denne vejledning.
Eksempel 1: Sorter en matrix med datoværdier
Følgende eksempel viser, hvordan en række datoværdier kan sorteres korrekt ved hjælp af usort () -funktionen. Opret en PHP-fil med følgende script. $ date_array er defineret med fem-datoværdier. sorteringsdato () funktion erklæres som tilbagekaldsfunktion for at sortere $ date_array. Arrayværdierne udskrives, før de kaldes på usort () -funktionen. Når usort () -funktionen kaldes sammen med arrayet og tilbagekaldsfunktionen, konverterer den to datoværdier til tidsstempelværdier ved hjælp af funktionen strtotime (). Hvis de to tidsstempelværdier er ens, returnerer funktionen 0. Hvis den første tidsstempelværdi er større end den anden tidsstempelværdi, returnerer funktionen 1. Hvis den første tidsstempelværdi er lavere end den anden tidsstempelværdi, returnerer funktionen -1. usort () -funktionen kalder tilbagekaldsfunktionen flere gange indtil $ date_array er sorteret korrekt. Dernæst udskrives det sorterede array ved hjælp af den for hver løkke.
// Definer tilbagekaldsfunktionenfunktion sort_date ($ a, $ b)
return strtotime ($ a) - strtotime ($ b);
// Erklær matrixen med datoværdier
$ date_array = array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Udskriv matrixværdierne før sortering
ekko "
Værdierne for dato array:
";foreach ($ date_array som $ værdi)
ekko $ værdi."
";
// Sorter arrayet ved hjælp af usort ()
usort ($ date_array, "sort_date");
// Udskriv arrayet efter sortering
ekko "
Outputtet efter sorteringsdato array:
";foreach ($ date_array som $ værdi)
ekko $ værdi."
";
?>
Produktion:
Følgende output vises efter kørsel af scriptet fra serveren.
Eksempel 2: Sorter et associerende array
Følgende eksempel viser, hvordan et associerende array kan sorteres ved hjælp af usort () -funktionen. Opret en PHP-fil med følgende script. sorteringsnavne () funktion erklæres en tilbagekaldsfunktion for at sortere arrayet baseret på arrayværdierne. Den ternære operatør bruges i sorteringsnavne () funktion til at sammenligne det associerende matrixs værdier. Hvis de to værdier er ens, returnerer tilbagekaldsfunktionen 0. Hvis den første argumentværdi er større end den anden argumentværdi, returnerer tilbagekaldsfunktionen 1. Hvis den første argumentværdi er mindre end den anden argumentværdi, returnerer tilbagekaldsfunktionen -1. usort () sorterer arrayet ved hjælp af tilbagekaldsfunktionen, og det sorterede array udskrives ved hjælp af den for hver løkke.
// Definer funktionen til at sortere det associerende arrayfunktion sort_names ($ a, $ b)
returner $ a == $ b ? 0: $ a> $ b ? 1: -1;
// Definer det associerende array
$ persons = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Sorter matrixen
usort ($ personer, "sort_names");
// Udskriv det sorterede array
ekko "Værdierne for det sorterede array:
";
foreach ($ personer som $ person)
ekko $ person. "
";
?>
Produktion:
Følgende output vises efter kørsel af scriptet fra serveren.
Eksempel 3: Sorter et todimensionelt array
Følgende eksempel viser, hvordan et todimensionelt array kan sorteres ved hjælp af usort () -funktionen. Opret en PHP-fil med følgende script. sort_array () funktion erklæres en tilbagekaldsfunktion for at sortere arrayet baseret på arrayværdierne. strcmp () funktion bruges i tilbagekaldsfunktionen til at sammenligne værdierne i arrayet. Hvis de to værdier er ens, returnerer funktionen strcmp () 0. Hvis den første argumentværdi er større end den anden argumentværdi, returnerer funktionen strcmp () 1. Hvis den første argumentværdi er mindre end den anden argumentværdi, returnerer funktionen strcmp () -1. usort () sorterer arrayet ved hjælp af tilbagekaldsfunktionen, og strukturen for det sorterede array udskrives ved hjælp af print_r () fungere.
// Definer funktion til at sortere todimensionelt arrayfunktion sort_array ($ a, $ b)
return strcmp ($ a ['a'], $ b ['a']);
// Erklær det todimensionale array
$ animal = array (array ("a" => "Lion"), array ("a" => "Deer"), array ("a" => "Rabbit"), array ("a" => "Monkey "));
// Sorter matrixen
usort ($ dyr, "sort_array");
// Udskriv det sorterede array
ekko "Matrixværdierne efter usort ():
";";
print_r ($ dyr);
ekko "
?>
Produktion:
Følgende output vises efter kørsel af scriptet fra serveren.
Konklusion:
usort () er en nyttig funktion til at sortere bestemte typer data, der ikke kan sortere PHPs normale sorteringsfunktioner korrekt. Usort () -funktionens tilbagekaldsfunktion er defineret ud fra de slags værdier, der skal sorteres. Denne vejledning hjælper læserne med at vide, hvordan de bruger usort () -funktionen og anvender den i deres script baseret på kravet.