1 Array sortieren und Key behalten

Hallo.
Ich hab folgendes Problem.
Ich hab 3 Arrays…
Array 1: ids[]
Array 2: zahlen[]
Array 3: kommentar[]

Jetzt möchte ich den array zahlen[] absteigend sortieren … vom höchsten zum kleinsten.

Wie gehe ich da vor??
Die Keys des sortierten Arrays müssen gleich den Keys des unsortierten Arrays sein. Denn ids[] und kommentar[] stehen in abhängigkeit.

Ich hab rsort(), krsort(), array-reverse() probiert, jedoch hier werden die Keys immer verändert. Liefert nicht das Ergebnis, dass ich benötige…

Bitte um Hilfe.

Gruss,
Sebastian

Ich hab rsort(), krsort(), array-reverse() probiert, jedoch
hier werden die Keys immer verändert. Liefert nicht das
Ergebnis, dass ich benötige…

Vielleicht solltest du ein zweidimensionales Array erstellen:

zahlen[][]

, und dann die IDs im Array selbst speichern.

z[0][0] = "text", z[0][1] = "0"
z[1][0] = "text", z[1][1] = "1"
z[2][0] = "text", z[2][1] = "2"
z[3][0] = "text", z[3][1] = "3"
...

…dann kannst du das Array sortieren (weiß jetzt selber nicht, wie das bei zweidimensionalen ist) und hast trotzdem die IDs noch an der richtigen Stelle.

lg frosch.

Hallo Frosch.

Vielleicht solltest du ein zweidimensionales Array erstellen:
speichern.

Ich hab jetzt mit Hilfe deiner Anleitung kein zwei sondern ein mehrdimensionales Array erstellt.
Jedoch hab ich jetzt wirklich keine ahnung, ob das so funktioniert!! Hab noch nie mit zwei bzw. mehrdimensionalen Arrays gearbeitet…

hier mal mein versuch:

for ($i=0;$i
wenn ich jetzt über print\_r($arraymehr) die Werte ausgeben will...kommt nichts...$arraymehr = NULL.

Hab ich da was falsch gemacht??

Gruss,
Sebastian

Kurz und knapp:
http://de3.php.net/manual/de/function.asort.php

Gruss
Stefan

Hallo Stefan.

Kurz und knapp:
http://de3.php.net/manual/de/function.asort.php

habs mit dem asort versucht, das funktioniert auch, aber ich benötige vom höchsten zum kleinsten…und dies funktioniert auch mit rsort, aber da werden die keys überschrieben…sie werden sortiert, aber die anderen arrays stehen nicht mehr in abhängigkeit.

gibts sonst noch ne möglichkeit??

gruss,
Sebastian

du vergibst keinen wert.

for ($i=0;$i

sollte klappen.

Gruß
Phillip


> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>

Hallo Phillip.

du vergibst keinen wert.

for ($i=0;$i

k…ich verstehe…
so funktionierts jetzt hab ich die abhängigkeiten…
aber wenn ich jetzt

rsort($arraymehr)

werden die keys überschrieben.

Wie kann ich jetzt vom höchsten zum kleinsten sortieren??

Gruss,
Sebastian

Jetzt möchte ich den array zahlen[] absteigend sortieren …
vom höchsten zum kleinsten.

Wie gehe ich da vor??
Die Keys des sortierten Arrays müssen gleich den Keys des
unsortierten Arrays sein. Denn ids[] und kommentar[] stehen in
abhängigkeit.

man verzeihe mir, wenn ich in perl antworte. man nimmt sich die
indizes von array 1, sortiert diese nach den werten von array1.
dann nimmt man von jedem der 3 arrays einen arrayslice mit den sortierten
indizes. ich weiss, nicht, ob es in php arrayslices gibt, zur not
muss man sich das selbst programmieren.
also:

my @array1 = qw(A F D G E);
my @array2 = qw(a f d g e);
my @i = sort { $array1[$a] cmp $array1[$b] } 0..$#array1;
# array slices
my @sorted\_1 = @array1[@i];
my @sorted\_2 = @array2[@i];

LÖSUNG
Hallo Ihr.

Die Lösung war eh schon fast gegeben:
ich verwende arsort() -> arsort() behält den Index bei…
Danke an alle…

Gruss,
Sebastian

Hallo Sebastian,

danach einfach array_reverse() benutzen.
http://de2.php.net/manual/de/function.array-reverse.php

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]