だから私は、配列を取る再帰的な 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 をリセットします。ここで何が間違っていますか?