Heim >Backend-Entwicklung >PHP-Tutorial >Wie sortiere ich mehrdimensionale Arrays nach inneren Array-Feldern in PHP?

Wie sortiere ich mehrdimensionale Arrays nach inneren Array-Feldern in PHP?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-28 22:58:15451Durchsuche

How to Sort Multidimensional Arrays by Inner Array Fields in PHP?

Sortieren mehrdimensionaler Arrays nach inneren Array-Feldern in PHP

Das Sortieren mehrdimensionaler Arrays nach Feldern in den inneren Arrays kann eine häufige Aufgabe bei der Arbeit mit sein Strukturierte Daten in PHP. Dies kann nützlich sein, um Daten effizient zu organisieren und abzurufen.

Um ein mehrdimensionales Array nach einem der Felder des inneren Arrays zu sortieren, können Sie die Funktion array_multisort() in Verbindung mit array_column() verwenden. Die Funktion array_column() extrahiert eine Wertespalte aus den inneren Arrays und erstellt so ein eindimensionales Array, das dann sortiert werden kann.

Die Syntax zum Sortieren eines mehrdimensionalen Arrays nach dem „Preis“-Feld der inneren Arrays lautet wie folgt:

array_multisort(array_column($yourArray, "price"), SORT_ASC, $yourArray);

In diesem Beispiel stellt $yourArray das mehrdimensionale Array dar, das Sie sortieren möchten. Die SORT_ASC-Konstante gibt die aufsteigende Reihenfolge für die Sortierung an.

Hier ist eine detaillierte Aufschlüsselung des Codes:

  • array_column($yourArray, „price“): Diese Zeile extrahiert den „Preis“ Werte aus den inneren Arrays, wodurch ein eindimensionales Array von Preisen entsteht.
  • SORT_ASC: Diese Konstante definiert Aufsteigende Reihenfolge für die Sortierung. Sie können SORT_DESC für absteigende Reihenfolge verwenden.
  • $yourArray: Diese Variable wird als letzter Parameter übergeben, um die Sortierung auf das ursprüngliche mehrdimensionale Array anzuwenden.

Nach der Ausführung dieses Codes wird die $yourArray wird nach dem Feld „Preis“ in aufsteigender Reihenfolge sortiert. Die Schlüssel des äußeren Arrays bleiben nicht erhalten.

Hinweis: In PHP 7 und höher kann die Verwendung dieser Syntax zu Fehlern im Zusammenhang mit der Übergabe von Variablen als Referenz führen. Um dies zu vermeiden, können Sie einen zweizeiligen Ansatz verwenden:

$col = array_column($yourArray, "price");
array_multisort($col, SORT_ASC, $yourArray);

In PHP 8 funktioniert die einzeilige Syntax jedoch wieder wie erwartet.

Das obige ist der detaillierte Inhalt vonWie sortiere ich mehrdimensionale Arrays nach inneren Array-Feldern in PHP?. 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