因此,我正在尝试创建一个递归 flattenArray 函数,该函数将采用一个数组(具有未知数量的元素和子数组(可能有更多子数组)。
这是我遇到问题的PHP代码:
<?php
// Javascript Array [ [1,2,3],[[[4]]],[5],[6],[[7,8,[9]]] ]
// Equivalent PHP Array:
$sampleArray = Array(
Array(1,2,3),
Array(
Array(
Array(4)
)
),
Array(5),
Array(6),
Array(
Array(
7,
8,
Array(9)
)
)
);
$finishedArray = Array();
function flattenArray($array){
foreach ($array as $key => $value) {
if(is_array($value)){
flattenArray($value);
} else {
$finishedArray[] = $value;
echo "<br> ".$value." | ";
print_r($finishedArray);
}
}
}
flattenArray($sampleArray);
echo "<br><br>FinishedArray: <br>";
print_r($finishedArray);
?>
我得到这个输出:
1 | Array ( [0] => 1 )
2 | Array ( [0] => 1 [1] => 2 )
3 | Array ( [0] => 1 [1] => 2 [2] => 3 )
4 | Array ( [0] => 4 )
5 | Array ( [0] => 5 )
6 | Array ( [0] => 6 )
7 | Array ( [0] => 7 )
8 | Array ( [0] => 7 [1] => 8 )
9 | Array ( [0] => 9 )
FinishedArray:
Array ( )
由于某种原因,它重置了 $finishedArray。我在这里做错了什么?