Heim >Backend-Entwicklung >PHP-Tutorial >Wie sortiere ich mehrdimensionale PHP-Arrays basierend auf den Werten des inneren Arrays?

Wie sortiere ich mehrdimensionale PHP-Arrays basierend auf den Werten des inneren Arrays?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 03:40:31654Durchsuche

How to Sort Multi-Dimensional PHP Arrays Based on Inner Array Values?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn