hi,
Das war jetzt nur ein Beispiel... Ein echter "Baum" sieht so aus:
Array
(
[0] => Array (...)
[1] => Array
(
[href] => ueber_uns
[text] => Über uns
[title] => Wissenswertes über uns
[0] => Array
(
[href] => auftrag
[text] => Auftrag und Ziel
[title] =>
)
[1] => Array
(
[href] => ansprechpartner
[text] => Mitarbeiter
[title] =>
)
auftrag und ansprechpartner liegen also unterhalb von ueber_uns.
Da verstehe ich nicht, warum du die einfach als weiterer Arrays dranhängt - das bildet doch die Struktur kaum sinnvoll ab.
Ich würde es wie gesagt so machen, dass ich für ueber_uns noch eine Eigenschaft "kindelemente" definiere - und _diese_ enthält dann in einem Array die darunter liegenden Ebenen.
Statt also auf der selben Ebene wie die Eigenschaften href, text und title noch nichtssagende Eigenschaften mit den Schlüsseln 0 und 1 liegen zu haben, hätte ich parallel zu href, text und title noch eine Eigenschaft childs liegen - und _unterhalb_ dieser dann die Kinder (childs wäre also ein Array).
Ich möchte jetzt aber nach 'anfahrt' suchen, und wenn 'anfahrt' nicht in der "oberen Ebene" ist, auch noch den href-Wert des Elements haben, dessen Kind es ist...
Das wäre dann entweder ein Fall für einen rekursiven Alogrithmus, der sich "merkt" welchen Weg er gegangen ist - oder für einen Baum als Datenstruktur, der sich in beide Richtungen, von der Wurzel zu den Blättern, und von den Blättern zur Wurzel durchlaufen lässt. Es müsste also nicht nur an X die Information abgelegt werden, dass Y ein Kind von X ist - sondern auch an Y, dass X das Parent von Y ist.
Und noch angebrachter wäre es m.E., dafür gleich eine Klasse zu erstellen, anstatt das in Arrays abzulegen, die den Eigenschaften nur eine gewisse Struktur, aber keine Bedeutung geben können.
Gerne, aber wie?
Na, definier dir ein Objekt mit entsprechenden Eigenschaften - href, title, text, childs, parent, ...
Und hänge dann beim Aufbauen dieses Baums die Kindelemente in die Parents ein, und lasse die parent-Eigenschaft der Kinder auf das Parent verweisen.
gruß,
wahsaga
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }