Hallihallo!
Vor gar nicht allzu langer Zeit hatte ich mal ein ähnliches Problem.
Ich habe das folgendermaßen gelöst:
-
einen eindimensionalen Array anlegen, in dem alle Arrays zusammengefügt werden. Dieser ist genauso lang wie die anderen.
-
dieses Array mit den Inhalten der anderen füttern. Also die einzelnen Daten per join() in einem String zusammenwerfen, und dann im eindimensionalen Array ablegen. Für join() kann man sich selbst ein Trennzeichen aussuchen, also z.B. "###"
-
dieses eindimensionale Array per sort() sortieren lassen.
-
die einzelnen Arrayelemente per split() (hier das gleiche Trennzeichen angeben wie bei join()) wieder in die ursprünglichen Arrays geben.
-
die ursprünglichen, und nach Deinen Vorstellungen sortierten Arrays ausgeben lassen.
Das Ganze sieht vielleicht auf den ersten Blick etwas kompliziert aus, ist es aber ganz und gar nicht, und dieses Verfahren hat einige gewaltige Vorteile:
a) Performance: eine Umsortierung von einer ca. 2000 x 6 Zellen grossen Tabelle dauert auf meinem Rechner nur noch 1.6 Sekunden. Algorithmen, die nur eine "Spalte" sortieren und dann von Hand die anderen Spalten wieder anpassen, liefen ca. 15 Sekunden.
b) Variabilität: man kann sich seine Sortierzeile frei aussuchen. Auch die Tatsache, daß man mal Zahlen statt Strings sortieren will, stellt kein Problem dar.
c) Sicherheit: es dürfen im Gegensatz zu anderen Algorithmen, auch mal doppelte Einträge, auch in der Sortierzeile, vorhanden sein, trotzdem bleiben die Datensätze immer beieinander.
Wenn Du Interesse hast, kannst Du Dir das Skript unter Beispielseite mal in Aktion ansehen.
Viele liebe Grüße,
Der Dicki
PS: Bevor Fragen aufkommen: ja, die Alben sind alle meine!