php

Användning av usort () -funktionen i PHP

Användning av usort () -funktionen i PHP
Många inbyggda funktioner finns i PHP för att sortera arrayvariablerna. usort () -funktionen är en av dem. Denna funktion sorterar arrayen med hjälp av en användardefinierad återuppringningsfunktion. När matrisen innehåller en viss typ av data som inte kan sorteras på ett vanligt sätt med hjälp av andra sorteringsfunktioner, är usort () bättre att använda. Till exempel, om matrisen innehåller datavärden, kan sorten inte sorteras på lämpligt sätt med andra sorteringsfunktioner i PHP. Denna typ av samling kan sorteras genom att definiera rätt användardefinierad funktion som kallas i det andra argumentet för usort () -funktionen hur usort () -funktionen kan sortera de specifika matrisvärden som visas i denna handledning.

Syntax:

Syntaxen för usort () -funktionen ges nedan.

Boolean usort (array $ array, callback ())

Denna funktion har två argument. Båda argumenten är obligatoriska. Det första argumentet tar den matris som kommer att sorteras. Återuppringningsfunktionen () jämför arrayens värden för att sortera arrayen och returnerar ett numeriskt värde. Om argumenten för återuppringningsfunktionen () är lika, returnerar funktionen 0. Om det första argumentet för återuppringningsfunktionen () är större än det andra argumentet, returnerar det 1. Om det första argumentet för återuppringningsfunktionen () är mindre än det andra argumentet returnerar det -1. usort () -funktionen returnerar true för lyckad sortering och returnerar false för misslyckad sortering. Vissa användningar av denna funktion har visats i nästa del av denna handledning.

Exempel 1: Sortera en matris med datumvärden

Följande exempel visar hur en matris med datumvärden kan sorteras ordentligt med hjälp av usort () -funktionen. Skapa en PHP-fil med följande skript. $ date_array definieras med fem datumvärden. sort_date () funktionen deklareras som återuppringningsfunktion för att sortera $ date_array. Matrisvärdena skrivs ut innan funktionen usort () anropas. När usort () -funktionen anropas med arrayen och återuppringningsfunktionen kommer den att konvertera två datumvärden till tidsstämpelvärden med funktionen strtotime (). Om de två tidsstämpelvärdena är lika, returnerar funktionen 0. Om det första tidsstämpelvärdet är större än det andra tidsstämpelvärdet, returnerar funktionen 1. Om det första tidsstämpelvärdet är lägre än det andra tidsstämpelvärdet, returnerar funktionen -1. usort () -funktionen anropar återuppringningsfunktionen flera gånger tills $ date_array sorteras ordentligt. Därefter kommer den sorterade matrisen att skrivas ut med för varje slinga.

// Definiera återuppringningsfunktionen
funktion sort_date ($ a, $ b)
returnera strtotime ($ a) - strtotime ($ b);

// Förklara matrisen med datumvärden
$ date_array = array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Skriv ut matrisvärdena före sortering
eko "

Värdena för datummatrisen:

";
foreach ($ date_array som $ värde)

echo $ värde."
";

// Sortera matrisen med usort ()
usort ($ date_array, "sort_date");
// Skriv ut matrisen efter sortering
eko "

Utdata efter sorteringsdatumarray:

";
foreach ($ date_array som $ värde)

echo $ värde."
";

?>

Produktion:

Följande utdata visas efter att man kört skriptet från servern.

Exempel 2: Sortera en associativ matris

Följande exempel visar hur en associativ matris kan sorteras med usort () -funktionen. Skapa en PHP-fil med följande skript. sorteringsnamn () funktion förklaras en återuppringningsfunktion för att sortera matrisen baserat på matrisvärdena. Den ternära operatören används i sorteringsnamn () funktion för att jämföra den associerande matrisens värden. Om de två värdena är lika kommer återuppringningsfunktionen att returnera 0. Om det första argumentvärdet är större än det andra argumentvärdet kommer återuppringningsfunktionen att returnera 1. Om det första argumentvärdet är mindre än det andra argumentvärdet, återgår återuppringningsfunktionen -1. usort () sorterar matrisen med hjälp av återuppringningsfunktionen och den sorterade matrisen skrivs ut med för varje slinga.

// Definiera funktionen för att sortera den associerande matrisen
funktion sort_names ($ a, $ b)
returnera $ a == $ b ? 0: $ a> $ b ? 1: -1;

// Definiera den associerande matrisen
$ persons = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Sortera matrisen
usort ($ persons, "sort_names");
// Skriv ut den sorterade matrisen
eko "Värdena för den sorterade matrisen:
";
foreach ($ personer som $ person)
echo $ person. "
";
?>

Produktion:

Följande utdata visas efter att man kört skriptet från servern.

Exempel 3: Sortera en tvådimensionell matris

Följande exempel visar hur en tvådimensionell matris kan sorteras med hjälp av usort () -funktionen. Skapa en PHP-fil med följande skript. sort_array () funktion förklaras en återuppringningsfunktion för att sortera matrisen baserat på matrisvärdena. strcmp () -funktionen används i återuppringningsfunktionen för att jämföra värdena i matrisen. Om de två värdena är lika kommer funktionen strcmp () att returnera 0. Om det första argumentvärdet är större än det andra argumentvärdet, returnerar strcmp () -funktionen 1. Om det första argumentvärdet är mindre än det andra argumentvärdet kommer funktionen strcmp () att returnera -1. usort () sorterar matrisen med hjälp av återuppringningsfunktionen, och strukturen för den sorterade matrisen skrivs ut med print_r () fungera.

// Definiera funktion för att sortera tvådimensionell matris
funktion sort_array ($ a, $ b)

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

// Deklarera den tvådimensionella matrisen
$ animal = array (array ("a" => "Lion"), array ("a" => "Deer"), array ("a" => "Rabbit"), array ("a" => "Monkey "));
// Sortera matrisen
usort ($ djur, "sort_array");
// Skriv ut den sorterade matrisen
eko "Matrisvärdena efter usort ():
";
print_r ($ djur);
eko "
";
?>

Produktion:

Följande utdata visas efter att man kört skriptet från servern.

Slutsats:

usort () är en användbar funktion för att sortera vissa typer av data som inte korrekt kan sortera PHP: s normala sorteringsfunktioner. Usort () -funktionens återuppringningsfunktion definieras baserat på vilka värden som krävs för att sortera. Denna handledning hjälper läsarna att veta hur man använder usort () -funktionen och tillämpa den i sitt skript baserat på kravet.

Installera senaste Dolphin Emulator för Gamecube & Wii på Linux
Dolphin Emulator låter dig spela dina valda Gamecube & Wii-spel på Linux Personal Computers (PC). Eftersom Dolphin Emulator är en fritt tillgänglig o...
Hur man använder GameConqueror Cheat Engine i Linux
Artikeln täcker en guide om hur du använder GameConqueror-fuskmotorn i Linux. Många användare som spelar spel på Windows använder ofta applikationen "...
Bästa spelkonsolemulatorer för Linux
Den här artikeln listar populära spelkonsolemuleringsprogram som finns tillgängliga för Linux. Emulation är ett mjukvarukompatibilitetsskikt som emule...