php

Verwendung der Funktion usort() in PHP

Verwendung der Funktion usort() in PHP
In PHP gibt es viele eingebaute Funktionen, um die Array-Variablen zu sortieren. Die Funktion usort() ist eine davon. Diese Funktion sortiert das Array mithilfe einer benutzerdefinierten Callback-Funktion. Wenn das Array einen bestimmten Datentyp enthält, der nicht standardmäßig mit anderen Sortierfunktionen sortiert werden kann, ist die Verwendung von usort() besser. Wenn das Array beispielsweise Datenwerte enthält, kann die Sorte mit anderen Sortierfunktionen von PHP nicht richtig sortiert werden. Diese Art von Sammlung kann sortiert werden, indem die richtige benutzerdefinierte Funktion definiert wird, die im zweiten Argument der Funktion usort() aufgerufen wird, wie die Funktion usort() die in diesem Tutorial gezeigten spezifischen Array-Werte sortieren kann.

Syntax:

Die Syntax der Funktion usort() ist unten angegeben.

Boolescher usort( array $array, callback())

Diese Funktion hat zwei Argumente. Beide Argumente sind obligatorisch. Das erste Argument übernimmt das zu sortierende Array sort. Die Funktion callback() vergleicht die Werte des Arrays, um das Array zu sortieren und gibt einen numerischen Wert zurück. Wenn die Argumente der Funktion callback() gleich sind, gibt die Funktion 0 zurück. Wenn das erste Argument der Funktion callback() größer als das zweite Argument ist, wird 1 . zurückgegeben. Wenn das erste Argument der Funktion callback() kleiner als das zweite Argument ist, wird -1 . zurückgegeben. Die Funktion usort() gibt true für eine erfolgreiche Sortierung und false für eine fehlgeschlagene Sortierung zurück. Einige Anwendungen dieser Funktion werden im nächsten Teil dieses Tutorials gezeigt.

Beispiel-1: Sortieren eines Arrays von Datumswerten

Das folgende Beispiel zeigt, wie ein Array von Datumswerten mit der Funktion usort() richtig sortiert werden kann. Erstellen Sie eine PHP-Datei mit dem folgenden Skript. $date_array ist mit fünf Datumswerten definiert. sort_date() Funktion ist als Callback-Funktion deklariert, um die $date_array. Die Array-Werte werden vor dem Aufruf der Funktion usort() ausgegeben printed. Wenn die Funktion usort() mit dem Array und der Callback-Funktion aufgerufen wird, werden zwei Datumswerte mit der Funktion strtotime() in Zeitstempelwerte umgewandelt. Wenn die beiden Zeitstempelwerte gleich sind, gibt die Funktion 0 . zurück. Wenn der erste Zeitstempelwert größer als der zweite Zeitstempelwert ist, gibt die Funktion 1 . zurück. Wenn der erste Zeitstempelwert niedriger als der zweite Zeitstempelwert ist, gibt die Funktion -1 . zurück. Die Funktion usort() ruft die Callback-Funktion mehrmals auf, bis die $date_array ist richtig sortiert. Als nächstes wird das sortierte Array mit gedruckt die für jeden Schleife.

//Definiere die Callback-Funktion
Funktion sort_date($a, $b)
return strtotime($a) - strtotime($b);

// Das Array der Datumswerte deklarieren
$date_array = array('25-03-2020', '14-03-2020', '28-02-2015', '09-12-2017', '20-09-2015');
//Gibt die Array-Werte vor der Sortierung aus
Echo"

Die Werte des Datums-Arrays:

";
foreach($date_array als $value)

echo $wert."
";

// Sortiere das Array mit usort()
usort($date_array, "sort_date");
//Gibt das Array nach der Sortierung aus
Echo"

Die Ausgabe nach dem Sortieren des Datums-Arrays:

";
foreach($date_array als $value)

echo $wert."
";

?>

Ausgabe:

Die folgende Ausgabe wird angezeigt, nachdem das Skript vom Server ausgeführt wurde.

Beispiel-2: Sortieren eines assoziativen Arrays

Das folgende Beispiel zeigt, wie ein assoziatives Array mit der Funktion usort() sortiert werden kann. Erstellen Sie eine PHP-Datei mit dem folgenden Skript. sort_names() Funktion wird als Callback-Funktion deklariert, um das Array basierend auf den Array-Werten zu sortieren. Der ternäre Operator wird in der verwendet sort_names() Funktion zum Vergleichen der Werte des assoziativen Arrays. Wenn die beiden Werte gleich sind, gibt die Callback-Funktion 0 . zurück. Wenn der erste Argumentwert größer als der zweite Argumentwert ist, gibt die Callback-Funktion 1 . zurück. Wenn der erste Argumentwert kleiner als der zweite Argumentwert ist, gibt die Callback-Funktion -1 . zurück. usort() sortiert das Array mit der Callback-Funktion, und das sortierte Array wird mit . ausgegeben die für jeden Schleife.

// Definieren Sie die Funktion zum Sortieren des assoziativen Arrays
Funktion sort_names($a, $b)
Rückgabe $a == $b ? 0 : $a > $b ? 1: -1;

//Definiere das assoziative Array
$persons = array("1001"=>"Meera Ali", "1002"=>"Kabir Hossain", "1003"=>"Nurjahan Akter");
//Array sortieren
usort($personen, "sort_names");
//Gibt das sortierte Array aus
Echo"Die Werte des sortierten Arrays:
";
foreach($persons als $person)
echo $person. "
";
?>

Ausgabe:

Die folgende Ausgabe wird angezeigt, nachdem das Skript vom Server ausgeführt wurde.

Beispiel-3: Sortieren eines zweidimensionalen Arrays

Das folgende Beispiel zeigt, wie ein zweidimensionales Array mit der Funktion usort() sortiert werden kann. Erstellen Sie eine PHP-Datei mit dem folgenden Skript. sort_array() Funktion wird als Callback-Funktion deklariert, um das Array basierend auf den Array-Werten zu sortieren. Die Funktion strcmp() wird in der Callback-Funktion verwendet, um die Werte des Arrays zu vergleichen. Wenn die beiden Werte gleich sind, gibt die Funktion strcmp() 0 zurück. Wenn der Wert des ersten Arguments größer als der Wert des zweiten Arguments ist, gibt die Funktion strcmp() 1 . zurück. Wenn der erste Argumentwert kleiner als der zweite Argumentwert ist, gibt die Funktion strcmp() -1 . zurück. usort() sortiert das Array mit der Callback-Funktion, und die Struktur des sortierten Arrays wird mit dem ausgegeben print_r() Funktion.

//Funktion zum Sortieren eines zweidimensionalen Arrays definieren
Funktion sort_array($a, $b)

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

// Deklariere das zweidimensionale Array
$animals = array(array ("a" => "Löwe"), array ("a" => "Hirsch"), array ("a" => "Kaninchen"),array ("a" => "Monkey "));
//Array sortieren
usort($tiere, "sort_array");
//Gibt das sortierte Array aus
Echo"Die Arraywerte nach usort():
";
print_r($tiere);
Echo"
";
?>

Ausgabe:

Die folgende Ausgabe wird angezeigt, nachdem das Skript vom Server ausgeführt wurde.

Fazit:

usort() ist eine nützliche Funktion zum Sortieren bestimmter Datentypen, die die normalen Sortierfunktionen von PHP nicht richtig sortieren können. Die Callback-Funktion der Funktion usort() wird basierend auf den Arten von Werten definiert, die zum Sortieren erforderlich sind. Dieses Tutorial hilft den Lesern, die Funktion usort() zu verwenden und sie je nach Anforderung in ihrem Skript anzuwenden.

So verwenden Sie den Fsync-Systemaufruf in C
Der fsync wird verwendet, um den In-Core-Zustand einer Datei mit einem beliebigen Speichergerät zu koordinieren. Der Systemaufruf fsync() übergibt („l...
So verwenden Sie Poll System Call in C
Die Funktion poll() ermöglicht es Programmen, Eingaben und Ausgaben durch eine Reihe von Dateideskriptoren zu multiplexen. Mit anderen Worten, der Sys...
So verwenden Sie Select System Call in C
Der Systemaufruf select() ermöglicht es einem System, mehrere Dateideskriptoren zu verfolgen. Der Systemaufruf select wartet also darauf, dass sich ei...