Heim >Backend-Entwicklung >PHP-Tutorial >Wie sortiere ich ein mehrdimensionales PHP-Array nach dem Wert eines inneren Felds?

Wie sortiere ich ein mehrdimensionales PHP-Array nach dem Wert eines inneren Felds?

Linda Hamilton
Linda HamiltonOriginal
2024-12-18 16:33:12615Durchsuche

How to Sort a Multidimensional PHP Array by an Inner Field's Value?

Sortieren eines mehrdimensionalen Arrays nach innerem Feld in PHP

Angenommen, wir haben ein mehrdimensionales Array, das einer Datenbanktabelle ähnelt, wobei jedes äußere Array-Element eine Darstellung darstellt eine Zeile und jedes innere Array, das Feldnamen und -werte enthält. Wir möchten die Zeilen (äußere Array-Elemente) nach einem bestimmten Feld sortieren, z. B. „Preis“.

Um dies zu erreichen, können wir die folgende PHP-Funktion verwenden:

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

This Linie erreicht unser gewünschtes Ergebnis auf prägnante Weise. Die Funktion array_multisort() benötigt drei Argumente:

  1. array_column($yourArray, „price“) – Extrahiert die Feldwerte „price“ aus jedem inneren Array in ein eindimensionales Array.
  2. SORT_ASC – Gibt an, dass das Feld „Preis“ in aufsteigender Reihenfolge sortiert werden soll.
  3. $yourArray – Das mehrdimensionales Array, das sortiert werden soll.

Durch die Verkettung dieser Funktionen können wir die äußeren Array-Elemente effektiv nach dem Feld „Preis“ sortieren. Es ist wichtig zu beachten, dass dieser Vorgang die ursprüngliche Variable $yourArray überschreibt. Daher ist es ratsam, das Ergebnis einer anderen Variablen zuzuweisen, wenn die ursprüngliche Reihenfolge beibehalten werden muss.

Aktualisierungen:

  • In neueren PHP 7-Versionen kann die Übergabe einer Variablen als Referenz mit „&“ zu Fehlern führen. Um dieses Problem zu beheben, kann der folgende zweizeilige Workaround eingesetzt werden:
$col = array_column($yourArray, "price");
array_multisort($col, SORT_ASC, $yourArray);
  • PHP 8 beseitigt dieses Problem, sodass die einzeilige Lösung ohne Anpassungen verwendet werden kann.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein mehrdimensionales PHP-Array nach dem Wert eines inneren Felds?. 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