php

Bruk av usort () -funksjon i PHP

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

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 tilbakeringingsfunksjonen
funksjon 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 matrisen
funksjon 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 array
funksjon 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.

Hvordan vise FPS-teller i Linux-spill
Linux-spill fikk et stort press da Valve kunngjorde Linux-støtte for Steam-klient og spillene deres i 2012. Siden den gang har mange AAA- og indiespil...
Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...
Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...