我有一个多维数组嵌套到未知/无限深度.
我希望能够遍历每个元素.
我不想使用foreach(){foreach(){foreach(){}}}因为我不知道深度.
我希望能够遍历每个元素.
我不想使用foreach(){foreach(){foreach(){}}}因为我不知道深度.
我最终会寻找所有名为“xyz”的嵌套数组.有没有人有任何建议?
I’m eventually looking for all nested arrays called “xyz”. Has anyone got any suggestions?
当然.基于使用一些迭代器的建议,您可以:
$iterator = new RecursiveIteratorIterator( new RecursiveArrayIterator($array),RecursiveIteratorIterator::SELF_FIRST ); foreach ($iterator as $key => $item) { if (is_array($item) && $key === 'xyz') { echo "Found xyz: "; var_dump($item); } }
其他答案之间的重要区别在于,在迭代时使用RecursiveIteratorIterator :: SELF_FIRST标志使非叶(即父)项(即数组)可见.
您还可以在数组迭代器周围使用ParentIterator,而不是检查循环内的数组,以使后者更整洁.