以下のこの形式で HTML ツリーを構築しようとしています。必要なだけ多くのレベルを深くすることができますが、この形式に従う必要があります。
私がデータ ソースとして持っているのは、Magento の API 呼び出しから構築された PHP 配列です。
私のPHP配列は次のようになります...
Array
(
[category_id] => 1
[parent_id] => 0
[name] => Root Catalog
[is_active] =>
[position] => 0
[level] => 0
[children] => Array
(
[0] => Array
(
[category_id] => 2
[parent_id] => 1
[name] => Default Category
[is_active] => 1
[position] => 1
[level] => 1
[children] => Array
(
[0] => Array
(
[category_id] => 263
[parent_id] => 2
[name] => Texas Roadhouse
[is_active] => 1
[position] => 1
[level] => 2
[children] => Array
(
)
)
[1] => Array
(
[category_id] => 265
[parent_id] => 2
[name] => Bubba's
[is_active] => 1
[position] => 2
[level] => 2
[children] => Array
(
)
)
[2] => Array
(
[category_id] => 3
[parent_id] => 2
[name] => Neon Signs
[is_active] => 1
[position] => 3
[level] => 2
[children] => Array
(
[0] => Array
(
[category_id] => 12
[parent_id] => 3
[name] => Custom Neon Signs
[is_active] => 1
[position] => 1
[level] => 3
[children] => Array
(
[0] => Array
(
[category_id] => 257
[parent_id] => 12
[name] => Animals Custom Neon Signs
[is_active] => 0
[position] => 1
[level] => 4
[children] => Array
(
)
)
[1] => Array
(
[category_id] => 258
[parent_id] => 12
[name] => Bar Beer Cocktails Custom Neon Signs
[is_active] => 0
[position] => 2
[level] => 4
[children] => Array
(
)
)
PHP 配列を変換する必要がある HTML 出力は、この形式である必要があります...
<div id="tree">
<ul>
<li><input type="checkbox"><span>Node 1</span>
<ul>
<li><input type="checkbox"><span>Node 1.1</span>
<ul>
<li><input type="checkbox"><span>Node 1.1.1</span>
</ul>
</ul>
<ul>
<li><input type="checkbox"><span>Node 1.2</span>
<ul>
<li><input type="checkbox"><span>Node 1.2.1</span>
<li><input type="checkbox"><span>Node 1.2.2</span>
<li><input type="checkbox"><span>Node 1.2.3</span>
<ul>
<li><input type="checkbox"><span>Node 1.2.3.1</span>
<li><input type="checkbox"><span>Node 1.2.3.2</span>
</ul>
<li><input type="checkbox"><span>Node 1.2.4</span>
<li><input type="checkbox"><span>Node 1.2.5</span>
<li><input type="checkbox"><span>Node 1.2.6</span>
</ul>
</ul>
<li><input type="checkbox"><span>Node 2</span>
<ul>
<li><input type="checkbox"><span>Node 2.1</span>
<ul>
<li><input type="checkbox"><span>Node 2.1.1</span>
</ul>
<li><input type="checkbox"><span>Node 2.2</span>
<ul>
<li><input type="checkbox"><span>Node 2.2.1</span>
<li><input type="checkbox"><span>Node 2.2.2</span>
<li><input type="checkbox"><span>Node 2.2.3</span>
<ul>
<li><input type="checkbox"><span>Node 2.2.3.1</span>
<li><input type="checkbox"><span>Node 2.2.3.2</span>
</ul>
<li><input type="checkbox"><span>Node 2.2.4</span>
<li><input type="checkbox"><span>Node 2.2.5</span>
<li><input type="checkbox"><span>Node 2.2.6</span>
</ul>
</ul>
</ul>
</div>
これを達成する方法が本当にわかりません。配列を何度も繰り返す必要があることはわかっていますが、これを行う方法がわかりません。誰かが助けてくれれば、あなたの時間と知識に非常に感謝します