Upss, eigentlich wollte ich auf die Vorschau klicken.
Hallo!
Ich möchte/muß eine Navigation in einem Array abbilden. Dieses Array möchte ich dann rekursiv durchlaufen. Das funktioniert auch soweit.
---------------------------------><8-------------------------------
<?PHP
$test['1. M'][] = "1 Menü";
$test['1. M']['1.1 M'][] = "1.1 Menü";
$test['1. M']['1.2 M'][] = "1.2 Menü";
$test['1. M']['1.3 M'][] = "1.3 Menü";
$test['1. M']['1.3 M']['1.3.1 M'][] = "1.3.1 Menü";
$test['1. M']['1.3 M']['1.3.2 M'][] = "1.3.2 Menü";
$test['2. M'][] = "2. Menü";
function rek_array($nav_array, $tiefe)
{
$tiefe++;
while(list($key, $array) = each($nav_array))
{
if(is_array($array))
{
rek_array($array, $tiefe);
}
else
{
echo "<div style="margin-left:" . (10*$tiefe) . "">" . $array . " (" . $tiefe . ")</div>\n";
}
}
}
rek_array($test, -1);
?>
---------------------------------><8-------------------------------
Mit dieser Version bin ich nun einigermaßen zufrieden, wenn ich folgende Array-Ansätze betrachte.
$nav = array(
array("1. M" => "1. Menü",
array(
array("1.1 M" => "1.1 Menü"),
array("1.2" => "1.1 Menü")
)
)
);
$nav = array(
'1.1 Ebene',
array('2/1 Ebene',
'2/2 Ebene',
array('3/1 Ebene',
array('4/1 Ebene',
'4/2 Ebene'
)
)
),
'1.2 Ebene',
array('2/1 Ebene',
'2/2 Ebene',
array('3/1 Ebene',
array('4/1 Ebene',
'4/2 Ebene'
)
)
),
);
Ich habe da noch folgenden Ansatz, daß mir aber diese Menüstruktur generiert.
Blumen
Blumen
Balkonblumen
Balkonblumen
Zimmerpflanzen
Zimmerpflanzen
Das kommt, weil ich in jedem Array zwei Elemente habe. Ich komme aber nicht drauf, wie ich das "abstellen" kann.
------------------------------><8----------------------------------
<?PHP
$nav = array(
array("titel" => "Blumen", "href" => "blumen.html",
array("titel" => "Balkonblumen", "href" => "balkonblumen.html"),
array("titel" => "Zimmerpflanzen", "href" => "zimmerpflanzen.html")
)
);
function rek_array($nav_array, $tiefe)
{
$tiefe++;
while(list($key, $array) = each($nav_array))
{
if(is_array($array))
{
rek_array($array, $tiefe);
}
else
{
echo "<div style="margin-left:" . (10*$tiefe) . ""><a href="" . $nav_array['href'] . "">" . $nav_array['titel'] . "</a></div>\n";
}
}
}
rek_array($nav, 0);
?>
----------------------------------><8-------------------------------
Hat jemand schon einmal sowas gemacht und kann mir ein praktischen Ansatz liefern auch wenn er ganz anders ist oder ein paar Tipps auf Lager?
MfG, André Laugks
L-Andre @ gmx.de