Syntaxis:
De syntaxis van de functie usort() wordt hieronder gegeven:.
Boolean usort( array $array, callback())Deze functie heeft twee argumenten:. Beide argumenten zijn verplicht. Het eerste argument neemt de array die zal worden gesorteerd. De functie callback() vergelijkt de waarden van de array om de array te sorteren en retourneert een numerieke waarde. Als de argumenten van de functie callback() gelijk zijn, retourneert de functie 0. Als het eerste argument van de functie callback() groter is dan het tweede argument, wordt 1 . geretourneerd. Als het eerste argument van de functie callback() kleiner is dan het tweede argument, wordt -1 . geretourneerd. usort() functie retourneert true voor succesvolle sortering en retourneert false voor mislukte sortering. Sommige toepassingen van deze functie zijn weergegeven in het volgende deel van deze tutorial.
Voorbeeld-1: Sorteer een array van datumwaarden
Het volgende voorbeeld laat zien hoe een array van datumwaarden correct kan worden gesorteerd met de functie usort()(. Maak een PHP-bestand met het volgende script:. $date_array is gedefinieerd met vijf-datum waarden. sort_date() functie wordt gedeclareerd als callback-functie om de . te sorteren $date_array. De matrixwaarden worden afgedrukt voordat de functie usort() wordt aangeroepen. Wanneer de functie usort() wordt aangeroepen met de array en de callback-functie, worden twee datumwaarden omgezet in tijdstempelwaarden met behulp van de functie strtotime(). Als de twee tijdstempelwaarden gelijk zijn, retourneert de functie 0. Als de eerste tijdstempelwaarde groter is dan de tweede tijdstempelwaarde, retourneert de functie 1. Als de eerste tijdstempelwaarde lager is dan de tweede tijdstempelwaarde, retourneert de functie -1. usort() functie zal de callback-functie meerdere keren aanroepen totdat de $date_array is goed gesorteerd. Vervolgens wordt de gesorteerde array afgedrukt met de voor elk lus.
// Definieer de callback-functiefunctie sort_date($a, $b)
return strtotime($a) - strtotime($b);
//Declareer de reeks datumwaarden
$date_array = array('25-03-2020', '14-03-2020', '28-02-2015', '09-12-2017', '20-09-2015');
//Druk de matrixwaarden af voordat u sorteert
echo "
De waarden van de datumreeks:
";foreach($date_array als $value)
echo $waarde."
";
//Sorteer de array met usort()
usort($date_array, "sort_date");
//Druk de array af na het sorteren
echo "
De uitvoer na het sorteren van de datumarray:
";foreach($date_array als $value)
echo $waarde."
";
?>
Uitgang:
De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:.
Voorbeeld-2: Sorteer een associatieve array
Het volgende voorbeeld laat zien hoe een associatieve array kan worden gesorteerd met de functie usort()(. Maak een PHP-bestand met het volgende script:. sort_names() functie wordt uitgeroepen tot een callback-functie om de array te sorteren op basis van de arraywaarden. De ternaire operator wordt gebruikt in de sort_names() functie om de waarden van de associatieve array te vergelijken. Als de twee waarden gelijk zijn, retourneert de callback-functie 0. Als de waarde van het eerste argument groter is dan de waarde van het tweede argument, retourneert de callback-functie 1. Als de eerste argumentwaarde kleiner is dan de tweede argumentwaarde, retourneert de callback-functie -1. usort() sorteert de array met behulp van de callback-functie en de gesorteerde array wordt afgedrukt met de voor elk lus.
//Definieer de functie om de associatieve array te sorterenfunctie sort_names($a, $b)
retourneer $a == $b ? 0 : $a > $b ? 1 : -1;
// Definieer de associatieve array
$persons = array("1001"=>"Meera Ali", "1002"=>"Kabir Hossain", "1003"=>"Nurjahan Akter");
// Sorteer de array
usort($personen, "sort_names");
// Print de gesorteerde array
echo "De waarden van de gesorteerde array:
";
foreach($personen als $persoon)
echo $persoon. "
";
?>
Uitgang:
De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:.
Voorbeeld-3: Sorteer een tweedimensionale array
Het volgende voorbeeld laat zien hoe een tweedimensionale array kan worden gesorteerd met de functie usort()(. Maak een PHP-bestand met het volgende script:. sort_array() functie wordt uitgeroepen tot een callback-functie om de array te sorteren op basis van de arraywaarden. De functie strcmp() wordt gebruikt in de callback-functie om de waarden van de array te vergelijken. Als de twee waarden gelijk zijn, retourneert de functie strcmp() 0. Als de waarde van het eerste argument groter is dan de waarde van het tweede argument, zal de functie strcmp() 1 . retourneren. Als de eerste argumentwaarde kleiner is dan de tweede argumentwaarde, dan zal de functie strcmp() -1 . retourneren. usort() sorteert de array met behulp van de callback-functie, en de structuur van de gesorteerde array wordt afgedrukt met de print_r() functie.
//Definieer functie om tweedimensionale array te sorterenfunctie sort_array($a, $b)
return strcmp($a['a'], $b['a']);
// Declareer de tweedimensionale array
$animals = array(array ("a" => "Leeuw"), array ("a" => "Deer"), array ("a" => "Konijn"),array ("a" => "Aap "));
// Sorteer de array
usort($dieren, "sort_array");
// Print de gesorteerde array
echo "De matrixwaarden na usort():
";";
print_r($dieren);
echo "
?>
Uitgang:
De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:.
Conclusie:
usort() is een handige functie voor het sorteren van bepaalde soorten gegevens die de normale sorteerfuncties van PHP niet correct kunnen sorteren. De callback-functie van de functie usort() wordt gedefinieerd op basis van het soort waarden dat vereist is om te sorteren. Deze tutorial helpt de lezers om te weten hoe ze de functie usort() moeten gebruiken en toepassen in hun script op basis van de vereiste.