【发布时间】:2014-08-24 13:55:58
【问题描述】:
我有一个菜单数组,它是一个多维数组,我想对每个项目做一些事情,所以我尝试了 array_walk_recursive。这是菜单:
$menu = array(
array(
'name'=>'a',
'url'=>'b',
),
array(
'name'=>'c',
'url'=>'d',
'children'=>array(
array(
'name'=>'e',
'url'=>'f'
)
)
)
);
但是 array_walk_recursive 只让我处理每个元素,而不是数组。
array_walk_recursive($menu, function(&$item){
var_dump($item);//return a;b;c;d;e;f;g
});
我想要的是这样的:
array_walk_recursive_with_array($menu, function(&$item){
var_dump($item);//return array('name'=>'a','url'=>'b');a;b;array('name'=>'c',...);c;d;...
if(is_array($item) && isset($item['name'])){
// I want to do something with the item.
}
})
有没有PHP原生函数实现?
【问题讨论】:
-
可能是RecursiveArrayIterator的情况
-
array_walk_recursive是修改数组。在执行array_walk_recursive之后,您希望您的$menu如何。