Verschachteltes Array auslesen

Westbär

Mitglied
Hallo,
Ich habe mir ein kleines Script geschrieben.
PHP:
foreach($a AS $val => $key) {
    print "<b>".$val."</b><br />";
    foreach($key AS $val2 => $key2) {
	print "--------- ".$val2."<br />";
	foreach($key2 AS $val3) {
	    print "---------------- ".$val3."<br />";
	}
    }
}

Dieser Code ließt mein Array aus und formatiert es in eine Baumstruktur.
Soweit funktioniert es, allerdings muss ich immer, wenn ich ein neues Untermenü einbauen will, auch eine neue foreach schleife dazu geben.

Wie kann man es machen das man nur eine oder 2 foreach schleifen hat, die das berechnen (In einer funktion?).

Das Array ist so aufgebaut.

PHP:
$a=array('Menu1' => array(
'Menu2' => array(
'Menu3',
));

(Die einrückung sieht in kDevelop besser aus.)

Ich hoffe es kann mir wer helfen.

Gruß
 
Du könntest es rekursiv lösen:
PHP:
function unorderedList( $arr )
{
	$retVal = '<ul>';
	foreach( $arr as $key => $val ) {
		$retVal .= '<li>';
		if( is_array($val) ) {
			$retVal .= htmlspecialchars($key);
			$retVal .= unorderedList($val);
		} else {
			$retVal .= htmlspecialchars($val);
		}
		$retVal .= '</li>';
	}
	$retVal .= '</ul>';
	return $retVal;
}

echo unorderedList($a);
Formatieren kannst du das dann immer noch mit CSS.
 
Zurück