Heim >Backend-Entwicklung >PHP-Tutorial >Wie sortiere ich mehrdimensionale PHP-Arrays basierend auf den Werten des inneren Arrays?
Sortieren mehrdimensionaler PHP-Arrays basierend auf inneren Array-Werten
Das Sortieren mehrdimensionaler Arrays kann schwierig sein, insbesondere wenn der Sortierparameter vorhanden ist in verschachtelten Arrays vergraben. Um eine PHP-Hashtabelle basierend auf einem Wert im inneren Array zu sortieren, z. B. das Sortieren eines Arrays von Arrays nach dem Schlüssel „Name“, ist eine benutzerdefinierte Sortierfunktion erforderlich.
Erstellen einer benutzerdefinierten Sortierfunktion
Eine Methode zum Sortieren basierend auf verschachtelten Werten besteht darin, eine benutzerdefinierte Sortierfunktion zu erstellen, die den gewünschten Wert aus dem inneren Array extrahiert:
<code class="php">function cmp($a, $b) { return $b['name'] - $a['name']; }</code>
In diesem Beispiel vergleicht die cmp-Funktion die „Name“-Schlüssel in den inneren Arrays. Die Sortierung in absteigender Reihenfolge erfolgt durch Subtrahieren der Werte statt durch Addieren.
Verwenden der Sortierfunktion
Um die benutzerdefinierte Sortierfunktion zu verwenden, wenden Sie usort auf das Array an:
<code class="php">usort($mydata, "cmp");</code>
Dadurch wird das Array $mydata in absteigender Reihenfolge basierend auf dem Schlüssel „name“ in den inneren Arrays sortiert.
Alternative Methode
Abhängig vom konkreten Anwendungsfall ist eine weitere Möglichkeit zum Sortieren mehrdimensionaler Arrays die Funktion array_sort:
<code class="php">function array_sort($array, $on, $order=SORT_ASC){ // ... (function definition) ... // ... (sorting logic) ... }</code>
Die Funktion array_sort kann wie folgt verwendet werden, um in aufsteigender Reihenfolge nach dem Schlüssel „Name“ zu sortieren:
<code class="php">$list = array( array( 'type' => 'suite', 'name' => 'A-Name'), array( 'type' => 'suite', 'name' => 'C-Name'), array( 'type' => 'suite', 'name' => 'B-Name') ); $list = array_sort($list, 'name', SORT_ASC);</code>
Diese alternative Methode bietet eine umfassende Lösung zum Sortieren mehrdimensionaler Arrays basierend auf Werten in den inneren Arrays.
Das obige ist der detaillierte Inhalt vonWie sortiere ich mehrdimensionale PHP-Arrays basierend auf den Werten des inneren Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!