Mehrdimensionales Array sortieren
Timo
- php
1 Vinzenz Mai0 Timo
Hallo zusammen,
es geht wieder um das leidliche Thema "Wie sortiere ich ein mehrdimensionales Array richtig!"
Ich bin dem Beitrag auf dieser Seite gefolgt:
http://forum.de.selfhtml.org/archiv/2009/5/t186344/
und habe nach diesem Muster mein Array gestrickt.
$ar1 = array();
$ar1['nachname'][0] = 'Merkel';
$ar1['nachname'][1] = 'Adenauer';
$ar1['nachname'][2] = 'Schroeder';
$ar1['vorname'][0] = 'Angela';
$ar1['vorname'][1] = 'Konrad';
$ar1['vorname'][2] = 'Gerhard';
$ar1['jahr'][0] = '2005';
$ar1['jahr'][1] = '1998';
$ar1['jahr'][2] = '1949';
Dann noch nach "Vorname" sortieren:
array_multisort($ar1['vorname'],SORT_ASC,SORT_STRING);
Und das Ergebnis sieht fälschlicherweise so aus:
array(3) {
["nachname"]=>
array(3) {
[0]=>
string(6) "Merkel"
[1]=>
string(8) "Adenauer"
[2]=>
string(9) "Schroeder"
}
["vorname"]=>
array(3) {
[0]=>
string(6) "Angela"
[1]=>
string(7) "Gerhard"
[2]=>
string(6) "Konrad"
}
["jahr"]=>
array(3) {
[0]=>
string(4) "2005"
[1]=>
string(4) "1949"
[2]=>
string(4) "1998"
}
}
Behält Multisort nicht die Beziehungen zu den anderen Arrays bei?
Bei zwei Dimensionen klappt das noch, aber nimmt man z.B. das Jahr hinzu, geht die Sortierung über den Haufen.
Lässt sich das evtl. mit den Standardfunktionen gar nicht mehr regeln?
Bin schon auf etlichen Seiten gewesen und konnte mir da nur noch die Wahnsinnskonstrukte anschauen, die die Sortierungen übernommen haben.
Für einen Tipp wäre ich sehr dankbar
Gruß
Hallo,
es geht wieder um das leidliche Thema "Wie sortiere ich ein mehrdimensionales Array richtig!"
Für einen Tipp wäre ich sehr dankbar
können Dir Svens Ausführungen von heute früh weiterhelfen?
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
Du wirst es nicht glauben, aber den Beitrag hatte ich dummerweise nach dem Posten auch gefunden und gleich mal ausprobiert.
Und siehe da ... es funktioniert!!!
Das man Multisort gar nicht wirklich braucht, hätte ich ehrlich gesagt auch nicht gedacht.
Ich hatte meine Ausgaben mit sämtlichen Standard-Array-Sortierungen getestet und mit "PRE" und "VAR_DUMP" ausgegeben.
Meinen Fehler habe ich auch erst nach dem Beitrag von Sven gesehen, dass ich bei er VAR_DUMP-Ausgabe nie auf die Indizes geachtet hatte.
Die waren schon in der richtigen Reihenfolge, was mir erst bei Sven'S "FOREACH"-Schleife aufgefallen ist.
Hab' trotzdem vielen Dank für den Hinweis!
Er war Gold wert!
Gruß
Hallo Timo,
Du wirst es nicht glauben, aber den Beitrag hatte ich dummerweise nach dem Posten auch gefunden und gleich mal ausprobiert.
doch, das glaube ich Dir. Ich kannte den Beitrag schon und wollte die Suchfunktion meines Browsers nutzen, fand ihn aber mit der Eingabe von "mehrdimensional" nicht. Was so ein Rechtschreibfehler im Thema ausmacht.
Und siehe da ... es funktioniert!!!
Danke für Deine Rückmeldung, auch fürs Archiv.
Freundliche Grüße
Vinzenz