我有一个$ menus数组,其中包含$ submenu数组,然后包含$ sub_submenu数组。
结构是这样的:
(
[0] => Menu 0
[0] => Sub Menu 0 of Menu 0
[0] => Sub Sub Menu 0 of Sub Menu 0 of Menu 0
[1] => Sub Sub Menu 1 of Sub Menu 0 of Menu 0
[1] => Sub Menu 1 of Menu 0
[0] => Sub Sub Menu 0 of Sub Menu 1 of Menu 0
[1] => Sub Sub Menu 1 of Sub Menu 1 of Menu 0
[1] => Menu 1
[0] => Sub Menu 0 of Menu 1
[0] => Sub Sub Menu 0 of Sub Menu 0 of Menu 1
[1] => Sub Sub Menu 1 of Sub Menu 0 of Menu 1
[1] => Sub Menu 1 of Menu 1
[0] => Sub Sub Menu 0 of Sub Menu 1 of Menu 1
[1] => Sub Sub Menu 1 of Sub Menu 1 of Menu 1
)
如果我试试这个:
echo $menus[$menu[1]][$submenu[0]][1];
我明白了:
Sub Sub Menu 1 of Sub Menu 0 of Menu 1
这就是我的期望。
我现在正在尝试创建一个包含sub_sub_menu KEYS值的数组,我想我可以这样做:
$sub_sub_menu = array_keys($menus[$menu[1]][$submenu[0]]);
但我得到一个空数组:
echo '<pre>';print_r($sub_sub_menu); echo '</pre>';
返回:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
)
我做错了什么?
答案 0 :(得分:0)
你声明你“从array_keys()函数
获取一个空数组:”但你显示的结果是:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
)
不是一个空数组,而是使用数字索引数组的键填充(这是我们在非关联数组上运行array_keys时可能会遇到的情况)。
如果您在程序中创建了一个实际数组的转储,这样会很好,这样我们就可以更好地了解它的真实含义。
如果您让我们知道您计划使用键组(例如,是否向用户显示菜单项?),这也可能会有所帮助。