PHP で配列の自動ツリーを作成する際に問題があります。元。私の配列には2、3、3の数字があり、手動でツリーを作成できます。
<?
$source_arr = array(2,3,3);
for($x=0; $x<$source_arr[0]; $x++){ // level 0: 2 loops
for ($xx=0; $xx<$source_arr[1]; $xx++) { // level 1: 3 loops
for ($xxx=0; $xxx<$source_arr[2]; $xxx++) { // level 2: 3 loops
$new[] = "$x$xx$xxx";
}
}
}
echo "<pre>";
print_r($new);
echo "</pre>";
?>
結果:
配列 ( [0] => 000 [1] => 001 [2] => 002 [3] => 010 [4] => 011 [5] => 012 [6] => 020 [7] => 021 [8] => 022 [9] => 100 [10] => 101 [11] => 102 [12] => 110 [13] => 111 [14] => 112 [15] => 120 [16] => 121 [17] => 122 )
しかし、私はそれを自動化したいのですが、次のように、異なる値を持つさまざまな数のレベル配列があります: 11 レベル:
$source_arr = array(8,5,10,12,5,8,12,5,6,10,8);
そして、自動の大きなツリーを構築したいと考えています。PHP array_walk または array_walk_recursive で可能ですか? 再帰的なカテゴリ ツリーの構築に関する投稿を見つけましたが、それらのコードを適応させることはできません。
編集:無限配列を実行してメモリを使い果たしたくありません。配列の数が 15 項目を超えることはありません。値の範囲は 3 ~ 16 です。