Menüarray korrekt durchlaufen

Mik3e

Erfahrenes Mitglied
Hi zusammen,

Habe mir ein Objekt gebaut, dass mir ein Navigationsmenü ausliefert. Die Grundstruktur des Menüs wird zecks Modularität in einem eigenen File als Array angelegt.

Problemstellung:
Beim Auslesen des Arrays komme ich auf keinen grünen Zweig. Ich habe Probleme mit den Array Indizes. Die Elemente der höher gelegenen Ebene werden jeweils auch in der darunterliegenden mitgeführt. Klingt kompliziert... schaut Euch den falschen Output an, dann wißt Ihr was ich meine :)

Wenn jemand eine bessere Idee für den Aufbau des Arrays hat, bitte einfach vorschlagen :) Bitte beachtet dabei, dass jedes Array-Element verschiedene Daten enthält. Daher auch der letzte Index "name". Es gibt noch weitere (wie etwa "Description" oder "URL", die aber hier zwecks übersichtlichkeit nicht angeführt sind).

Mein Menü-Array (maximal fünf Ebenen):
PHP:
/********************************************************************
* $fileID: menu_structure.php										*
* Version: 1.0														*
*																	*
* Description:														*
* Bildet die Menüstruktur für das Horizontale Navigations-Menü.		*
* Das Menü wird dabei als Array angelegt							*
/********************************************************************/

$MENUSTRUCTURE=array();

// Menü-Array bilden (Maximal vier Ebenen)
//-------------------------------------------------------------------
$MENUSTRUCTURE[0][0][0][0]['name']='Home'; // Home
	$MENUSTRUCTURE[0][1][0][0]['name']='Test1'; // Home
	$MENUSTRUCTURE[0][2][0][0]['name']='Test2'; // Home
		$MENUSTRUCTURE[0][2][1][0]['name']='Test2-1'; // Home
		$MENUSTRUCTURE[0][2][2][0]['name']='Test2-2'; // Home
			$MENUSTRUCTURE[0][2][2][1]['name']='Test2-2-1'; // Home
$MENUSTRUCTURE[1][0][0][0]['name']='Stammdaten'; // Stammdaten
Meine Klasse (Methode), die mir den Array auslesen soll:
PHP:
/********************************************************************
* $fileID: class_admin_menu.php										*
* Version: 1.0														*
*																	*
* Description:														*
* Klasse, die das horizontalte Hauptmenü erstellt					*
/********************************************************************/

class menu
{

	// menu: Konstruktor zum Erzeugen des Menüs
	//-------------------------------------------------------------------
	function menu()
	{
		
		// Durchlaufen des Menübaums und Erstellen des passenden JS
		//-------------------------------------------------------------------
		foreach ($MENUSTRUCTURE as $keyEbene1 => $value) {			// Durchlaufen der ersten Ebene
			echo $MENUSTRUCTURE[$keyEbene1][0][0][0]['name'].'</br>';
			foreach ($MENUSTRUCTURE[$keyEbene1] as $keyEbene2 => $value) {
				echo '--'.$MENUSTRUCTURE[$keyEbene1][$keyEbene2][0][0]['name'].'</br>';
				foreach ($MENUSTRUCTURE[$keyEbene1][$keyEbene2] as $keyEbene3 => $value) {
					echo '----'.$MENUSTRUCTURE[$keyEbene1][$keyEbene2][$keyEbene3][0]['name'].'</br>';
					foreach ($MENUSTRUCTURE[$keyEbene1][$keyEbene2][$keyEbene3] as $keyEbene4 => $value) {
						echo '----'.$MENUSTRUCTURE[$keyEbene1][$keyEbene2][$keyEbene3][$keyEbene4]['name'].'</br>';
					}
				}
			}
		}
	}
}
Und hier der falsche Output der Methode:
Code:
Home
--Home
----Home
----Home
--Test1
----Test1
----Test1
--Test2
----Test2
----Test2
----Test2-1
----Test2-1
----Test2-2
----Test2-2
----Test2-2-1
Stammdaten
--Stammdaten
----Stammdaten
----Stammdaten

Habt Ihr einen Tipp für mich, wie man den Array "schlauer" aufbauen könnte? Bzw. wie die Schleifen für das Auslesen besser geschachtelt werden können?

Danke & LG
Mike
 
Zurück