我遇到了下面的代码,在破译它的用法时遇到了麻烦。
(为了简单起见,稍微改变了变量名)
$fooo = array(
'dog' => array('pages', 'home'),
'cat' => array('users', 'login'),
'bird' => array('users', 'reset', 1),
);
我熟悉关联数组,但以前没有见过这种"嵌套数组"的实现。
这段代码是在创建一个数组的数组吗?
例如,$fooo['dog']
返回一个数组,其中$dog[0]='pages'
和$dog[1]='home'
好像不对。
是的,这是一个数组的数组。但是,将其描述为每个值都有一个索引数组的关联数组可能更准确。
可以这样做:
$fooo['dog'] // gets array("pages", "home")
$fooo['bird'][0] // gets "users"
$fooo['cat'][1] // gets "login"
$fooo['cow'] = array('x', 'y'); // adds another value to the outer array
$fooo['bird'][] = 2; // $fooo['bird'] now equals array('users', 'reset', 1, 2)
这段代码没有错,但是你的例子缺乏实用性。但是有很多代码使用了这种结构。例如,网站上带有子菜单的菜单的逻辑表示(看起来像是示例的来源),然后可以循环此数据结构以生成HTML/CSS菜单。