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 です。