mis*_*t92 7 php arrays recursion
我有一个菜单数组,它是一个多维数组,我想对每个项目做一些事情,所以我尝试了 array_walk_recursive。这是菜单:
$menu = array(
array(
'name'=>'a',
'url'=>'b',
),
array(
'name'=>'c',
'url'=>'d',
'children'=>array(
array(
'name'=>'e',
'url'=>'f'
)
)
)
);
Run Code Online (Sandbox Code Playgroud)
但 array_walk_recursive 只让我处理每个元素,而不是数组。
array_walk_recursive($menu, function(&$item){
var_dump($item);//return a;b;c;d;e;f;g
});
Run Code Online (Sandbox Code Playgroud)
我想要的是这样的:
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.
}
})
Run Code Online (Sandbox Code Playgroud)
有PHP原生函数实现吗?
根据array_walk_recursive 文档,您无法获取内部数组键。满足您的需求的一种方法是使用 array_walk 并创建您自己的递归性。
function HandleArray(&$value){
if(is_array($value)){
//Do something with all array
array_walk($value,'HandleArray');
}
else{
//do something with your scalar value
}
}
array_walk(array($your_array),'HandleArray');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10848 次 |
最近记录: |