【发布时间】:2011-12-12 21:16:42
【问题描述】:
我有一个多维数组,我不知道它的深度。例如,该数组可能如下所示:
$array = array(
1 => array(
5 => array(
3 => 'testvalue1'
)
),
2 => array(
6 => 'testvalue2'
),
3 => 'testvalue3',
4 => 'testvalue4',
);
有了这个数组,我想创建一个目录。这意味着需要保留密钥,因为我将它们用作“章节编号”。例如,“testvalue1”在第 1.5.3 章中。
现在我想在保留所有键的同时遍历数组 - 不使用 array_walk_recursive 因为包含另一个数组的键被删除(正确吗?),考虑到速度,最好不要使用嵌套的 foreach 循环。
有什么建议我应该怎么做?提前致谢。
PS:对于我的脚本,键是字符串(“1”而不是 1)还是整数都没有关系,如果将字符串作为键将使 array_walk_recursive 保留它们。
【问题讨论】:
-
@Gordon:很好的答案,不知道
RecursiveIteratorIterator:) 应该很好用。 -
RecursiveIteratorIterator 似乎删除了包含其他数组以及 array_walk_recursive 的键。或者我错了吗?
-
@carlo 在你使用
SELF_FIRT时不会:codepad.org/pAmiN8Ha
标签: php arrays loops multidimensional-array