0

我尝试了以下方法:

$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')))
  }
});

但是 echo $key.', '; 只返回最后一个键(“page”) 我做错了什么还是我误解了函数“array_walk_recursive”

4

1 回答 1

2

如果您查看文档中的第一条评论,您会发现它不像您预期​​的那样工作:

  • 此功能仅访问叶节点 *

也就是说,如果您有一棵带有子数组子数组的数组树,则回调函数只会访问树的叶子上的普通值。回调函数永远不会为树中的子节点(即子数组)中的节点调用。这具有使该功能在大多数实际情况下无法使用的效果。

如果您想检查数组中是否存在密钥,您可能需要查看此解决方案

于 2013-07-04T10:31:02.087 回答