PHP Verschachtelte mehrdimensionale Arrays

te one

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.252
Hallo,

ich bin auf der Suche nach einer einfacheren Lösung als das hier:
PHP:
$menu[]=array(  'name'      =>  'Home',
                'link'      =>  'home',
                'class'     =>  'active');
$dropdown1=array();
$dropdown1[]=array(  'name'  =>  'test1',
                     'link' =>  'test1');


$menu[]=array(  'name'      =>  'Dropdown',
                'link'      =>  'drop',
                'class'     =>  'dropdown',
                'dropdown'  =>  $dropdown1);

Folgenden Versuch habe ich bereits gestartet:

PHP:
$menu[]=array(  'name'      =>  'Home',
                'link'      =>  'home',
                'class'     =>  'active');
$menu[]=array(  'name'      =>  'Dropdown',
                'link'      =>  'drop',
                'class'     =>  'dropdown',
                'dropdown'  =>  array(  'name'  =>  'test1',
                                        'link' =>  'test1'));

Klappt leider nicht...Wenn ich versuche darauf zuzugreifen gibt er mir immer nur genau einen Buchstaben zurück (weil er das wahrscheinlich als String bekommt und somit dann das Zeichen mit dem Index des Arrayzugriffs zurückgibt).
Möchte damit ein Menü anlegen und für jedes Dropdownfeld immer ein Hilfsarray zu machen ist schon etwas umständlich
 
Bisschen wenige Infos irgendwie. Wie genau greifst du denn darauf zu?

Die Syntax scheint bisher zu stimmen, wobei deine beiden Schnipsel NICHT das gleiche ergeben.
 
Code:
$menu[]=array(  'name'      =>  'Home',
                'link'      =>  'home',
                'class'     =>  'active');
$menu[]=array(  'name'      =>  'Dropdown',
                'link'      =>  'drop',
                'class'     =>  'dropdown',
                'dropdown'  =>  [B]array([/B]array(  'name'  =>  'test1',
                                        'link' =>  'test1'))[B])[/B];
 
Ah, danke Yuuri, du bist mein Held/Heldin?^^
In $menu[]['dropdown'] befindet sich ja nochmal ein mehrdimensionales array...

@character:
Als kleiner Hintergrund, ich greife wie folgt darauf zu:
PHP:
foreach ($menu as $key => $value) {
                            if ($menu[$key]['class']=='dropdown') {
                               //tue etwas
                                foreach ($menu[$key]['dropdown'] as $key2 => $value2) {
                                   //tue nochwas. Hier zB mit $menu[$key]['dropdown'][$key2]['name']
                                }
                            }
                            else {
                                //mach etwas anderes
                            }
                        }

Aber klappt jetzt genau so, wie es soll. thx
 
Zurück
Oben