【发布时间】:2023-03-09 07:56:01
【问题描述】:
设置:
$array = ['level_one' => [
'level_two' => [
'level_three' => [
'key' => 1
]
]
]];
我为需要遍历每个单独值的过滤过程做准备:
$recurIter = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
问题:
过滤过程完成后,我想将过滤后的 $recurIter 转换回具有原始结构的数组。我该怎么做?
目前尝试过:
iterator_to_array($recurIter)
这将返回展平的初始数组:
数组 ( [键] => 1 )
我想要原始结构 iterator_to_array 仅在应用于 RecursiveArrayIterator 实例时返回原始数组结构
谢谢
【问题讨论】:
-
你能描述一下“过滤过程”吗?在使用
RecursiveIteratorIterator展平迭代之前进行过滤通常更有意义,例如通过将RecursiveArrayIterator包裹在CallbackFilterIterator中。 -
这是一个简单的过滤过程,我在其中取消设置不匹配的值。我正在使用 RecursiveIteratorIterator 因为我不知道结构有多深。除了编写我自己的递归迭代器来跟踪结构之外,我不知道另一种方法