【发布时间】:2011-09-08 07:38:23
【问题描述】:
我需要从嵌套到另一个数组中的数组中取消设置元素,从而只保留第一个 N 元素(N 是预定义的)。只有具有数字索引的元素才会受到影响。
输入数组:
Array
(
[0] => Array (
[a] => 'w'
[b] => Array (
[0]=> 'x'
[1]=> 'x'
[2]=> 'x'
)
)
[1] => Array (
[a] => 'y'
)
[2] => Array (
[0] => 'z'
[1] => 'z'
[2] => 'z'
)
)
所需的输出(N=2):
Array
(
[0] => Array (
[a] => 'w'
[b] => Array (
[0]=> 'x'
[1]=> 'x'
)
)
[1] => Array (
[a] => 'y'
)
)
根据上述定义,只有 [0][b][2] 和 [2] 未设置,因为它们具有数字索引,并且它们都表示各自数组的第三个元素。
【问题讨论】:
-
您希望如何嵌套它们?我是否正确假设可能有 10 层嵌套?还是您的示例也是最大嵌套量?也许给出一个具体的例子来说明它的作用可以为你的代码提供一个清晰的图像。
-
嵌套层级没有任何限制。可能有 10 个级别,可能更多,可能更少,因此我最初的印象是我可能必须使用
array_walk_recursive来完成这项工作,但等待更多反馈以防有更好的方法来做。
标签: php arrays recursion multidimensional-array