Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich ein mehrdimensionales Array in PHP mit „usort()' und „uasort()' sortieren?
Viele Situationen treten auf, in denen die Notwendigkeit besteht, ein mehrdimensionales Array zu sortieren. Dies kann durch die Verwendung einer benutzerdefinierten Vergleichsfunktion innerhalb der Funktion usort() erreicht werden.
Sortieren nach einem einzigen Schlüssel mit usort()
Zum Sortieren Wenn wir das gegebene Array mit dem Wert des Schlüssels „order“ vergleichen, können wir eine Sortierfunktion wie folgt definieren:
function sortByOrder($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; } usort($myArray, 'sortByOrder');
Alternativ können wir eine anonyme Funktion verwenden Funktion:
usort($myArray, function($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; });
Mehrdimensionale Sortierung
Dieser Ansatz kann erweitert werden, um mehrdimensionale Arrays zu sortieren. Um beispielsweise nach „Reihenfolge“ und dann nach „Unterordnung“ zu sortieren:
usort($myArray, function($a, $b) { $retval = $a['order'] <=> $b['order']; if ($retval == 0) { $retval = $a['suborder'] <=> $b['suborder']; } return $retval; });
Schlüsselzuordnungen mit uasort() beibehalten
Wenn Sie Schlüsselzuordnungen beibehalten müssen , verwenden Sie uasort(). Zum Vergleich siehe den Vergleich der Array-Sortierfunktionen im Handbuch.
Das obige ist der detaillierte Inhalt vonWie kann ich ein mehrdimensionales Array in PHP mit „usort()' und „uasort()' sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!