Tom: assoziatives Array sortieren

Beitrag lesen

Hello Dedlfix,

array\_multisort($sname, SORT\_ASC, $array\_list);[/code]  

array_multisort() ist meist unbrauchbar, weil es nicht die üblichen Zeilenarrays (ein Eintrag pro Datensatz) sondern Spaltenarrays (ein Array für alle Nachnamen, eins für alle Vornamen, etc. ) haben möchte. Es ist besser, die Sortierung mit den u*sort()-Funktionen und einer selbst geschriebenen Vergleichsfunktion durchzuführen.

Ich halte es - wie hier schon lange bekannt - für sinnvoller, sich gar nicht erst in solch ein Datenchaos zu begeben, sondern die Datenstrukturen von Anfang an in einer besser verarbeitbaren Form aufzubauen!

Da es sich in PHP in aller Regel imemr nur um temporäre Strukturen handelt (von Request zu Request), sollte man sein Gehirnschmalz eher darauf verwenden, schnell erzeugbare, schnell verarbeitbare und vor allem bei "Arrays" schnell sortierbare Strukturen zu benutzen. Außerdem benötigen die von mir immer wieder promoteten "Spaltenarrays" auch wesentlich weniger Speicherplatz, als die "satzorientierten". Das kann jeder nachprüfen und wird feststellen, dass es stimmt. Wenn der "assoziative Name" pro "Datensatzelement" gleich blebt und nur ein numerischer Index verwaltet werden muss, ist der Speicherplatzbedarf erheblich geringer, als wenn pro numerischem Index diverse assoziative Elemente gespeichert werden müssen.

Da die Daten ohnehin über den gesamten Speicher verstreut gespeichert werden, ist es bezüglich der Zugriffszeit wiederrum nahezu egal, wie herum man sortiert, der numerische Zugriff auf ähnliche Elemente mag dabei aber noch etwas schneller sein. Das heißt jetzt aber

[element][numerus] -> Wert

und nicht etwa

[numerus][element]...{Displacement} -> Wert

denn wie Dir ja bekannt sein sollte, werden die Datenstrukturen ohnehin atomisiert abgelegt, und nicht etwa in geschlossener Form. Geht ja auch gar nicht, da niemand vorher weiß, wie lang ein String werden wird.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://restaurant-zur-kleinen-kapelle.de