PHP递归函数输出选择



我一定屏蔽了一些东西,我知道答案很简单,但就我的一生而言,我无法从谷歌获得任何明确的答案。我有这个阵列:

Array
(
[0] => Array
(
[id] => 1
[name] => Paint
[parent_id] => 0
[sub] => Array
(
[0] => Array
(
[id] => 4
[name] => Dulux
[parent_id] => 1
[sub] => Array
(
[0] => Array
(
[id] => 6
[name] => Roof Cover
[parent_id] => 4
[sub] => Array
(
)
)
)
)
[1] => Array
(
[id] => 5
[name] => Plascon
[parent_id] => 1
[sub] => Array
(
)
)
)
)
[1] => Array
(
[id] => 2
[name] => Electrical
[parent_id] => 0
[sub] => Array
(
)
)
[2] => Array
(
[id] => 3
[name] => Plumbing
[parent_id] => 0
[sub] => Array
(
)
)
)

并希望输出带有选项组的select。我知道这是一个101 PHP的东西,但我已经做了很长时间才弄清楚。如有任何帮助,我们将不胜感激。

这里有一个非常简单的递归函数:

function output_option($arr) {
foreach ($arr as $item) {
if ($item['sub']) {
echo '<optgroup label="', $item['name'], '">';
output_option($arr['sub']);
echo '</optgroup>';
} else {
echo '<option id="', $arr['name'], '">', $arr['name'], '</option>';
}
}
}

您可以根据需要随意修改/更改它,但它应该是不言自明的。

最新更新