Mehrdimensionales Array in PHP sortieren
- Verwenden Sie den Raumschiff-Operator, um das mehrdimensionale Array in PHP zu sortieren
-
Verwenden Sie die Funktion
usort()
mit einer anonymen Vergleichsfunktion, um mehrdimensionale Arrays in PHP zu sortieren -
Verwenden Sie die Funktion
usort()
mit einer benutzerdefinierten Vergleichsfunktion, um mehrdimensionale Arrays in PHP zu sortieren
In diesem Artikel werden drei Methoden zum Sortieren des mehrdimensionalen Arrays nach Werten in PHP vorgestellt.
Verwenden Sie den Raumschiff-Operator, um das mehrdimensionale Array in PHP zu sortieren
Wir können den Raumschiffoperator <=>
verwenden, um das mehrdimensionale Array mit Werten in PHP zu sortieren. Wir verwenden die Funktion usort()
zusammen mit dem Raumschiff-Operator. Der Operator wurde in PHP 7 eingeführt. Er wird verwendet, um die beiden Werte zu vergleichen. Es ergibt einen ganzzahligen Wert 0
, wenn beide Operanden gleich sind, ergibt weniger als 0
, wenn der linke Operand kleiner als der rechte Operand ist, und ergibt grösser als 0
, wenn der linke Operand grösser als der rechte ist Operand. Ebenso sortiert die Funktion usort()
ein Array mit Werten unter Berücksichtigung der benutzerdefinierten Vergleichsfunktion. Die Syntax der Funktion ist wie folgt.
usort($array, $callback)
Dabei ist $array
das zu sortierende Array. Die Option $callback
ist eine anonyme Callback-Funktion, die das erste und zweite Argument des Arrays vergleicht.
Betrachten Sie beispielsweise das folgende Array als zu sortieren. Wir sortieren das Array mit dem Wert des Schlüssels age
.
$info = array(
array('name' => 'Jadon', 'age' => 21, 'country' => 'England'),
array('name' => 'Marcus', 'age' => 23, 'country' => 'England'),
array('name' => 'Anthony', 'age' => 24, 'country' => 'France'),
array('name' => 'Mason', 'age' => 19, 'country' => 'England'),
array('name' => 'Dan', 'age' => 23, 'country' => 'Wales'),
);
Schreiben Sie in das PHP-Eröffnungs-Tag die Funktion usort()
mit dem Array $info
und einer anonymen Funktion als die beiden Argumente. Die anonyme Funktion hat als Parameter $x
und $y
. Verwenden Sie innerhalb des Funktionsrumpfs den Raumschiffoperator, um das Alter von zwei Argumenten als $x['age'] <=> $y['age']
zu vergleichen und den Wert zurückzugeben. Schließen Sie als Nächstes das PHP-Eröffnungs-Tag. Verwenden Sie dann die PHP-Funktion print_r()
, um das Array $info
innerhalb des HTML-Tags <pre>
zu drucken.
Somit wird das Array nach dem Wert age
sortiert, wie im Ausgabebereich angezeigt.
Beispielcode:
<?php
usort($info, function($x, $y) {
return $x['age'] <=> $y['age'];
});
?>
<pre><?php print_r($info);?> </pre>
Ausgabe:
Array
(
[0] => Array
(
[name] => Mason
[age] => 19
[country] => England
)
[1] => Array
(
[name] => Jadon
[age] => 21
[country] => England
)
[2] => Array
(
[name] => Marcus
[age] => 23
[country] => England
)
[3] => Array
(
[name] => Dan
[age] => 23
[country] => Wales
)
[4] => Array
(
[name] => Anthony
[age] => 24
[country] => France
)
)
Verwenden Sie die Funktion usort()
mit einer anonymen Vergleichsfunktion, um mehrdimensionale Arrays in PHP zu sortieren
Wir können die Funktion usort()
verwenden, die in der ersten Methode verwendet wird, um das mehrdimensionale Array mit Werten zusammen mit einer anonymen Callback-Funktion zu sortieren. Bei dieser Methode verwenden wir den Subtraktionsoperator anstelle des Raumschiff-Operators <=>
. Wir können die Werte des Arrays subtrahieren, nach denen das Array sortiert ist. So können wir das Array sortieren. Wir werden dasselbe Array $info
verwenden, um es nach dem Wert $age
zu sortieren. Diese Methode kann vor PHP 7 verwendet werden, da der Raumschiff-Operator erst in PHP 7 eingeführt wurde.
Schreiben Sie zum Beispiel die Funktion usort()
mit den Parametern wie oben. Geben Sie im Rumpf der anonymen Funktion die Subtraktion der beiden Argumente als $x['age'] - $y['age']
zurück. Drucken Sie das Array mit print_r()
wie oben beschrieben. Wir erhalten die gleiche Ausgabe wie bei der ersten Methode.
Beispielcode:
<?php
usort($info, function($x, $y) {
return $x['age'] - $y['age'];
});
?>
<pre><?php print_r($info);?> </pre>
Verwenden Sie die Funktion usort()
mit einer benutzerdefinierten Vergleichsfunktion, um mehrdimensionale Arrays in PHP zu sortieren
Diese Methode ist der zweiten Methode sehr ähnlich. Der einzige Unterschied besteht darin, dass wir anstelle der anonymen Funktion eine benutzerdefinierte Vergleichsfunktion verwenden. Diese Methode kann vor der PHP 5.3-Version verwendet werden. Dies liegt daran, dass das Konzept der anonymen Funktion in PHP 5.3 eingeführt wurde.
Erstellen Sie beispielsweise eine benutzerdefinierte Funktion sortByAge()
mit den Parametern $x
und $y
. In den Funktionskörper schreiben Sie die Subtraktion der Altersstufen wie oben. Außerhalb der Funktion schreiben Sie die Funktion usort()
mit dem Array $info
und sortByAge
als Argumente. Drucken Sie zuletzt das Array.
Das folgende Beispiel zeigt dieselbe Ausgabe wie bei der ersten Methode.
Beispielcode:
<?php
function sortByAge($x, $y) {
return $x['age'] - $y['age'];
}
usort($info, 'sortByAge');
?>
<pre><?php print_r($info);?> </pre>
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedInVerwandter Artikel - PHP Array
- Wie man die erste und letzte Iteration in einer foreach-Schleife in PHP bestimmt
- Wie man in PHP ein Array in eine Zeichenkette konvertiert
- Wie man das erste Element eines Arrays in PHP erhält
- Wie Sie ein Array in PHP echoen oder drucken
- Wie löscht man ein Element aus einem Array in PHP
- Wie man leere Array-Elemente in PHP entfernt