php

Brug af usort () -funktionen i PHP

Brug af usort () -funktionen i PHP
Der findes mange indbyggede funktioner i PHP for at sortere arrayvariablerne. usort () -funktionen er en af ​​dem. Denne funktion sorterer arrayet ved hjælp af en brugerdefineret tilbagekaldsfunktion. Når matrixen indeholder en bestemt type data, der ikke kan sorteres på en standard måde ved hjælp af andre sorteringsfunktioner, er usort () bedre at bruge. For eksempel, hvis matrixen indeholder dataværdier, kan sorten ikke sorteres korrekt ved hjælp af andre sorteringsfunktioner i PHP. Denne type samling kan sorteres ved at definere den korrekte brugerdefinerede funktion kaldet i det andet argument for usort () -funktionen, hvordan usort () -funktionen kan sortere de specifikke matrixværdier, der er vist i denne vejledning.

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 tilbagekaldsfunktionen
funktion 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 array
funktion 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 array
funktion 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.

Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...
Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...