我尝试了以下内容:
$tree['uid1']['page'] = "page1";
$tree['uid1']['childs']['uid2']['page'] = "page2";
$tree['uid1']['childs']['uid3']['page'] = "page3";
array_walk_recursive($tree, function (&$item, $key) {
echo $key.', ';
if ($key == 'uid3') {
// push array('childs' => array('uid4' => array('page' => 'page4')))
}
});
但是回声$ key。',';只返回最后一个键(“页面”) 我做错了什么或者我误解了函数“array_walk_recursive”
答案 0 :(得分:2)
如果您查看第一条评论at the documentation,您会发现它无法按预期运作:
- 这个功能只能参加LEAF NODES *
也就是说,如果你有一个包含子数组的数组树 子数组,只有树的叶子上的普通值 由回调函数访问。回调函数永远不会 要求树中的子节点(即子阵列)中的节点。这个 具有使大多数实用无法使用此功能的效果 的情况。
如果您想检查数组中是否存在某个键,您可能需要查看this solutions。