Das Sortieren von Arrays ist eine häufige Aufgabe in der Programmierung, und PHP stellt verschiedene Funktionen zum Sortieren von Arrays bereit. In diesem Blogartikel werden wir uns darauf konzentrieren, wie man ein PHP-Array nach den Werten eines Unterarrays sortiert.
Grundlagen
Um zu verstehen, wie wir ein PHP-Array nach den Werten eines Unterarrays sortieren können, müssen wir zunächst die Grundlagen verstehen. Ein Array ist eine geordnete Liste von Werten, die in einem Container gespeichert werden können. Ein PHP-Array kann auch andere Arrays enthalten, die als Unterarrays bezeichnet werden.
Ein Unterarray kann verschiedene Werte speichern, wie z.B. Zahlen, Zeichenketten oder boolesche Werte. Das Sortieren eines Arrays nach den Werten eines Unterarrays bedeutet, dass das Hauptarray anhand eines bestimmten Wertes im Unterarray geordnet wird. Dies kann nützlich sein, wenn das Hauptarray beispielsweise eine Liste von Personen mit ihren Namen und Alter enthält und wir die Liste nach dem Alter sortieren möchten.
Die array_multisort() Funktion
PHP bietet die Funktion „array_multisort()“, mit der wir ein Array nach den Werten eines oder mehrerer Unterarrays sortieren können. Die Funktion nimmt als Parameter das Array, das sortiert werden soll, und die Unterarray-Schlüssel, nach denen sortiert werden soll, an.
Die einfachste Möglichkeit, ein Array nach den Werten eines Unterarrays zu sortieren, besteht darin, die Funktion „array_multisort()“ in Kombination mit der Funktion „array_column()“ zu verwenden. Mit der Funktion „array_column()“ können wir ein einzelnes Unterarray extrahieren und als separates Array verwenden.
Beispiel
Um zu veranschaulichen, wie wir ein PHP-Array nach den Werten eines Unterarrays sortieren können, nehmen wir an, wir haben ein Array namens „people“, das die Informationen über verschiedene Personen enthält. Jedes Unterarray enthält den Namen, das Alter und das Geschlecht einer Person.
$people = array( array("name" => "Max", "age" => 28, "gender" => "male"), array("name" => "Anna", "age" => 35, "gender" => "female"), array("name" => "Tom", "age" => 42, "gender" => "male"), array("name" => "Lisa", "age" => 20, "gender" => "female") );
Um das Array nach dem Alter zu sortieren, können wir die Funktion „array_multisort()“ verwenden, indem wir das Unterarray „age“ extrahieren und als Parameter übergeben.
$ages = array_column($people, 'age'); array_multisort($ages, $people);
Nachdem das Array sortiert wurde, wird das Ergebnis wie folgt aussehen:
array( array("name" => "Lisa", "age" => 20, "gender" => "female"), array("name" => "Max", "age" => 28, "gender" => "male"), array("name" => "Anna", "age" => 35, "gender" => "female"), array("name" => "Tom", "age" => 42, "gender" => "male") )
Wie Sie sehen können, ist das Hauptarray nun nach dem Alter sortiert, wobei die Person mit dem jüngsten Alter zuerst kommt.
PHP 7 Tutorial #14 – Arrays Sortieren
Weitere Anwendungen
Die Sortierung eines PHP-Arrays nach den Werten eines Unterarrays kann in vielen verschiedenen Anwendungsfällen nützlich sein. Hier sind einige Beispiele.
Sortierung nach dem Namen
Wenn wir das Array nach dem Namen sortieren möchten, können wir die gleiche Methode wie zuvor anwenden, indem wir das Unterarray „name“ extrahieren und als Parameter übergeben. Der Code sieht wie folgt aus:
$names = array_column($people, 'name'); array_multisort($names, $people);
Sortierung nach dem Geschlecht
Wenn wir das Array nach dem Geschlecht sortieren möchten, können wir die gleiche Methode anwenden, indem wir das Unterarray „gender“ extrahieren und als Parameter übergeben. Der Code sieht folgendermaßen aus:
$genders = array_column($people, 'gender'); array_multisort($genders, $people);
Fazit
Das Sortieren eines PHP-Arrays nach den Werten eines Unterarrays ist eine nützliche Technik, die in verschiedenen Situationen angewendet werden kann. Die Verwendung der Funktionen „array_multisort()“ und „array_column()“ vereinfacht den Sortiervorgang erheblich und ermöglicht es uns, ein Array schnell und einfach nach einem bestimmten Wert zu ordnen.
Mit diesem Wissen können Sie nun Arrays nach den Werten eines Unterarrays sortieren und so Ihre Programmieraufgaben effizienter gestalten. Viel Spaß beim Programmieren!