phpbar.de logo

Mailinglisten-Archive

[php] Array nach vers. Schlüsseln sortieren

[php] Array nach vers. Schlüsseln sortieren

Chris. Grob chris.grob at javaforum.org
Son Aug 24 20:16:46 CEST 2003


Am Sonntag, 24. August 2003 18:13 schrieb Lutz Zetzsche:
Hallo Lutz und Andreas und alle,

> Da Du den Array $arrRes, wenn ich jetzt nicht falsch gedacht habe,
> ohnehin noch umbauen musst, um sinnvoll zu sortieren, kann Du bei der
> Gelegenheit gleich einen zusaetzlichen Array $arrRes["parentname"]
> generieren. Denn soweit ich es sehe, bekommst Du die von Dir
> gewuenschte, "rekursiv verschachtelte" Sortierung von "menuname" und
> "parent" mit array_multisort() nur mit einem zusaetzlichen Feld hin,
> welches die Relation von "menuname" und "parent" auf Namensebene
> herstellt.

Die Relation stellt sich praktisch durch id und parent her-
wenn parent einen anderen Eintrag als 0 hat, ist der Eintrag immer die ID des
Elterneintrags. 
Ich werde mit multisort nochmal genauer ansehen, vermutlich aber erst morgen.
Irgendwann muß Feierabend auch mal sein :)

Was ich bisher getan habe ist diese usort Funktion auszuprobieren.
Interessant, allerdings etwas kompliziert, wenn ich mich nicht gerade doof 
anstelle.

Mein Array sind mittlerweile so aus:

$arr[1][id] ...
$arr[1][parent] ...
$arr[2][id] ...
$arr[2][parent] ...
usw....

Meine Funktion, die nun das sortieren soll ist in der aktuellen Version:
return ($a[id] <= $b[parent])?1:-1;

Diese soll nun zuerst das Element mit parent 0 darstellen,
anschließend alle die im Parent die ID des vorherigen Elements im Eintrag 
haben.
Allerdings klappt das so nicht. Ich hab so einiges ausprobiert wie z.b.
if($a[id] == $b[parent]) return 0;
etc.
aber... vielleicht hat jemand einen Tip parat?
google sagt mir das alles ist ziemlich einfach.... aber irgendwie.. 

danke schon mal!
Chris

php::bar PHP Wiki   -   Listenarchive