我有一个像这样的数组:
Array
(
[23] => 540,
[25] => Array
(
[656] => Array(671 ,680),
[345] => 400
)
)
我想获取值:
540, 671, 680, 400
对我来说问题是,这个数组正在增长,但我不知道它会有多少层深。
最佳答案
您可以使用 SPL 的 RecursiveArrayIterator
和RecursiveIteratorIterator
及其 LEAVES_ONLY
标志。
独立示例:
<?php
$rai = new RecursiveArrayIterator(getData());
// $rii = new RecursiveIteratorIterator($rai, RecursiveIteratorIterator::LEAVES_ONLY) - but this is the default
$rii = new RecursiveIteratorIterator($rai);
foreach($rii as $n) {
echo $n, "\n";
}
// test data source
function getData() {
return array(
23 => 540,
25 => array(
656 => array(671,680),
345 => 400
)
);
}
打印
540
671
680
400
关于php - 获取深度不确定的多维数组的叶子节点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9872190/