Hello,
Hi,
ich habe ein eindimensionales Array aus Verzeichnis-Pfaden.
$pfade = array(
"Pfad1",
"Pfad2",
"Pfad3/Ebene1",
"Pfad3/Ebene2",
"Pfad3/Ebene3/Ebene1",
"Pfad4/Ebene2",
"Pfad5");Daraus möchte ich eine Ausgabe als Baumstuktur erzeugen, z.B. so
Pfad1
Pfad2
Pfad3
Ebene1
Ebene2
Ebene3
Ebene1
Pfad4
Ebene2
Pfad5Hat jemand ne Idee wie ich das bewerkstelligen könnte?
Durch Rekursion mit Übergabeparameter bzw. referenzwertweitergabe.
BTW: Deine Begriffswahl ist verkehrt herum.
Ebene 1 ist üblicherweise näher an der Wurzel, als Ebene 3...
Angenommen, im "Array" mit dem Namen $_baum stehen die Daten
function make_list($_baum, $ebene)
{
foreach($_baum as $subline_no => $entry)
{
if(is_array($enty)
{
$list .= make_list($enty, $ebene+1);
}
else
{
$list .= "<li class="entry"".($ebene % 2)." ebene$ebene">".htmlspecialchars($entry)."</li>\n";
}
return $list;
}
}
#----------------------------------------------------
$ebene = 0;
echo make_list($_baum, $ebene);
Ich hoffe, dass ich mich nicht geirrt habe.
Schau Dir das resultierende HTML an.
Der Rest sollte dann über CSS steuerbar sein.
Du brauchst eine Klasse für even und odd und eine für den indent.
Statt des <li> wäre ggf. auch <p> denkbar (bitte nicht schlagen *g*).
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
