PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : array_diff() ungeordnet


sami
22.01.2002, 14:02
sehe ich das richtig, dass array_diff() den resultierenden array geordnet zurück gibt?
kann ich das irgendwie verhindern/umgehen?


Maik
29.01.2002, 21:38
Was genau meinst du mit geordnet?
Steht auch nix von in der Funktionsbeschreibung.

Xothous

sami
29.01.2002, 21:58
ich weiss, dass nix steht, ist aber trotzdem so.
der resultierende array ist danach alphabetisch geordnet, wie wenn ich n asort() drauf gemacht hätt.

Maik
29.01.2002, 22:10
Ich glaub ich hab da ne Lösung für dich:


shuffle bringt ein Array in »Unordnung«. Die Funktion ordnet die
Elemente mit Hilfe des Zufallsgenerators neu.

$numbers = range(1,20);
srand(time());
shuffle($numbers);
while (list(,$number) = each($numbers)) {
echo "$number ";
}


Must dir halt anschauen wie es genau geht.

Xothous

sami
29.01.2002, 22:58
ich will die ned einfach gemischelt, ich will die genau in der reihenfolge, wie sie zuvor waren.
aber danke fürs helfen-wollen :]

Bauchi
30.01.2002, 00:47
nur mal so .. warum sollen die array elemente denn ungeordnet sein ???

das macht imho keinen sinn ..
aber du wirst es sicher noch erklären .. :-D

sami
30.01.2002, 09:57
ok, werde ich =)

ich hab im zu sendenden formular 2 select multiple. so:
http://www.cyberhost.ch/~jugi/test/select.gif
wenn ich nun im linken was auswähle und dann ´hinzufügen´ mach, soll das beim rechten unten angefügt werden und im linken gelöscht werden. soweit kein problem.
das mit dem löschen hab ich da eben per array_diff() gelöst (also array_diff($vorhandene, $ausgewählte) ).
wenn man nun das ganze von rechts nach links macht (also ´entfernen´), dann ist das rechte danach sortiert anstatt dass die momentane reihenfolge beibehalten wird und nur die ausgewählten elemente entfernt werden.