Mailinglisten-Archive |
Lutz Zetzsche schrieb: >> Welche Array-Namen muß ich denn der Funktion übergeben, damit sie mir >> das Gesamtarray nach Namen sortiert ? Kann mir das bitte jemand sagen ? > > Du mußt den Array zunächst umbauen: > > $arr[name][0] = "Lehmann" > $arr[vorname][0] = "bla" > $arr[kdnr][0] = 3 > ... > $arr[name][1] = "Böhme" > $arr[vorname][1] = "bla" > $arr[kdnr][1] = 5 > > Dann geht es so, wenn Du nach Name ASC, Vorname ASC sortieren möchtest: > > array_multisort ($arr[name], SORT_ASC, SORT_STRING, $arr[vorname], > SORT_ASC, SORT_STRING) Da fehlt noch etwas Wichtiges, fällt mir gerade auf. Ich hatte leider nur Dein Beispiel angepaßt. ;-) Es gibt zwei Möglichkeiten: 1. Du fügst jetzt einfach alle Elemente in array_multisort() ein: array_multisort ($arr[name], SORT_ASC, SORT_STRING, $arr[vorname], SORT_ASC, SORT_STRING, $arr[kdnr], SORT_ASC, SORT_STRING, ........) 2. Du fügst, und das ist meines Erachtens die beste Lösung, einfach den Ausgangsarray, also den VOR dem obigen Umbau, an: array_multisort ($arr[name], SORT_ASC, SORT_STRING, $arr[vorname], SORT_ASC, SORT_STRING, $arr_vor_umbau, SORT_ASC, SORT_STRING) Beispiel 2 ist übrigens der Beweis dafür, daß Norberts These nicht stimmt, daß man die Datenstruktur ($arr_vor_umbau) umbauen muß. Es reicht, die Daten, die man für die Sortierung benötigt, in einen zweiten Array ($arr -> hier mit den Elementen "name" und "vorname") zu extrahieren. Das nur auf die Schnelle. Ich muß jetzt leider weg. Sollte es Probleme geben - obiges ist von mir aus Zeitmangel ungetestet und nur eine Schnellanleitung zur Selbsthilfe -, dann gucke ich heute Abend noch einmal drauf. :-) Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive