dedlfix: Assoziatives, mehrdimensionales Array sortieren

Beitrag lesen

Tach!

ich hoffe "Assoziatives, mehrdimensionales Array" ist für dieses Array die richtige Bezeichnung?

Meiner Meinung nach nicht. Ich sehe da nichts dimensionales, nur verschachtelte Datensatz-Arrays. array_multisort() ist dafür nicht wirklich ausgelegt. Es erwartet eine andere Struktur. Generell meide ich array_multisort, weil mir meine Strukturierung nach Datensätzen lieber ist, als die Spalten zusammen in Arrays zu bringen.

Um zu verstehen, wie man ein solches Array sortieren kann, verwende ich ein kleines, grobes Beispiel Array. Es soll nach der Marke (alphabetisch aufsteigend) sortiert werden und die Schlüssel der Marke, also die Modelle sollen ebenfalls (alphabetisch aufsteigend) sortiert werden.

In deinem Fall musst du da erstmal nach der Marke sortieren. Das geht recht einfach mit einer PHP-Sortierfunktionen, die ein Array nach Schlüsseln sortiert.

Der zweite Schritt ist, durch alle Marken zu gehen und nun die Inhalte jeweils einzeln zu sortieren. Da du auch hier wieder Daten als Schlüssel verwendest, reicht auch da wieder die Sortierung nach Schlüsseln.

Daten als Schlüssel: Das ist in PHP noch recht einfach möglich, weil es da assoziative Arrays gibt. Die gibt es aber nicht überall. Man kann zwar gelegentlich auf Objekte ausweichen (Javascript), aber dann verliert man üblicherweise alle Array-Funktionen, oder muss sie auf umständliche Weise verwenden. Wenn man hingegen Arrays mit numerischen Keys hat und alle Daten nur in den Values stehen, nimmt man für das Sortieren eine Funktion, der man eine benutzerdefinierte Vergleichsfunktion übergeben kann.

dedlfix.