mehrsimensionale Sortierung - schwierig
Frau Holle
- php
Hallo,
ich habe ein kleines Problem, welches mich die ganze Nacht wachgehalten hat. Aber ihr konntet mir bisher immer helfen - warum nicht diesmal :)
Gegeben seien Zeilen, die ich aus einer Textdatei einlese. Beispiel:
[Code]
10. 9. 03;390000;;Schlaudraff;190000
[/Code]
Diese trenne ich (mit split).
[Code]
$buffer=fgets($trans,1024);
list($trans_datum, $trans_einkommen, $trans_ausgaben, $trans_spieler, $trans_gewinn) =
split (";", $buffer, 5);
[/Code]
Nun möchte ich die 5 Variablen gerne SORTIERT ausgeben. Wie ich einzelne Variablen sortiere weiß ich (sort,rsort...). Aber der Zusammenhang zu der Zeile muss ja bleiben. Die anderen Variablen müssen sich also mitsortieren.
Einen Ansatz hätte ich da mit dem Einlesen in ein zweidimensionales Array:
[Code]
$max_einkauf['ausgaben'][$b]=$trans_ausgaben;
...
array_multisort($max_einkauf["ausgaben"], SORT_NUMERIC, SORT_DESC, $data_array["datum"], $data_array["name"], $data_array["gewinn"]);
[/Code]
Und zum Schluss möchte ich es gerne ausgeben (wobei nur die ersten 10 ausgegeben werden sollen):
[Code]
for ($a=0;$a<=9; $a++){
echo $max_einkauf['name'][$a];
...
[/Code]
Das Problem ist, dass ich anscheinend nur eine Variable (Feldbereich) beim musltisort mitgeben kann. Denn dann klappts. Allerdings sortiert er dann die anderen Felder nicht mit, und somit unbrauchbar. Auch muss ich ja das neues Index aufbauen, weil ich ja nur die ersten 10 in dem Array ausgeben will und nicht mit list und each alle. Somit gebe ich diese 10 in einer Schleife aus, in der ich allerdings den Index Abfrage. Wenn ich z.B. mit arsort sortiere bleibt der Index unberührt, dann sortiert er ja, aber ich krieg die Sortierung nicht zu fassen, weil ich ja die Ausgabe nach dem Index mache. Eine Möglichkeit wäre also, die ersten 10 auszugeben, ohne den Index anzufassen - aber wie?
Ihr merkt schon - etwas durcheinander. Wenn irgendwas unklar ist, dann meldet euch bitte. Auch kann ich euch die benötigten Dateien zum Testen geben. Sagt einfach an welcher Stelle meine Erklärung zu unverständlich ist, und ich versuchs dann besser zu machen. Vielen Dank!!!!
Gruss
Frau Holle
Hallo Roger,
Danke. Genau da habe ich auch meine Infos her. Das Problem besteht aber weiterhin
Gruss
Frau Holle
Hallole,
das ist etwas, wofür ich auch schon eine Lösung gesucht habe, insbesondere hier auf den self-Seiten. - Gefunden habe bis heute keine, außer meine Daten selbst durch die Gegend zu schaufeln, bis ich habe, was ich möchste.
Kurzum: Ich habe das nachgrübeln über eine elegante Lösung aufgegeben.
Gruß
Heiko
Hallo Heiko,
ohh, das klingt ja nicht wirklich sonderlich gut. allerdings wenn ich es elegant hätte haben wollen, dann hätte ich eine DB aufgesetzt und mir die ganzen Komplikationen mit den blöden Dateien erspart. Aber dafür muss es doch eine Lösung geben. Jeder benutzt doch 2-D Arrays. Und diese muss man doch auch vernünftig sortieren können. Ich guck mal weiter, aber Danke Dir...
Gruss
Frau Holle