массивы — PHP Рекурсивная функция для вывода выберите

Я, должно быть, что-то заблокировал, я знаю, что ответ прост, но я не могу получить четкие ответы от Google.
У меня есть этот массив:

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
(
)
)
)

и хотите вывести выбор с группами опций. Я знаю, что это вещь PHP 101, но я долго работал над этим, чтобы понять это. Любая помощь будет оценена.

0

Решение

Вот простая рекурсивная функция:

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>';
}
}
}

Не стесняйтесь модифицировать / изменять его для своих нужд, но это должно быть достаточно понятным.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]