Я пытаюсь создать многоуровневое выпадающее меню с mysql в качестве данных хранилища, и я использую ветку в качестве движка темы, я знаю, что есть тонна кода снаружи, но все они HTML в качестве вывода , так как я использую ветку, поэтому мне нужен массив в качестве выходного файла, и пусть twig отображает его (или, может быть, есть другой вариант, дайте мне знать, если это так).
этот код работа если я использую html как мощность. но если я перехожу к массиву в качестве вывода, проблема в 2-м уровне меню показывает только 1 массив или первый массив, это не цикл.
это мой выходной массив из запросов MySQL,значение цикла цикла с функцией php
Array
(
[0] => Array
(
[id] => 1
[title] => Dashboard
[link] => 1.html
[parent_id] => 0
)
[1] => Array
(
[id] => 2
[title] => Master Data
[link] => 2.html
[parent_id] => 0
)
[2] => Array
(
[id] => 3
[title] => submaster
[link] => 11.html
[parent_id] => 2
)
[3] => Array
(
[id] => 4
[title] => submaster
[link] => 12.html
[parent_id] => 2
)
и вот код я пытаюсь преобразовать, я имею в виду, прежде чем ему код HTML, как выход (UL> LI> уль> li>/li>/уль >/li>/лу)
$id = '';
function sub($items, $id){
foreach($items as $item){
if($item['parent_id'] == $id){
return array("link" =>$item['link'],"title"=>$item['title']);
sub($items, $item['id']);
}
}
}
foreach($allmenu as $data){
if($data['parent_id'] == 0){
$id = $data['id'];
$utama[]= array("link"=>$data['link'],"title"=>$data['title'],"sub"=>sub($allmenu, $id));
}
}
и это выход из выше кода
Array
(
[links] => Array
(
[0] => Array
(
[link] => 1.html
[title] => Dashboard
[sub] =>
)
[1] => Array
(
[link] => 2.html
[title] => Master Data
[sub] => Array
(
[link] => 11.html
[title] => Kampus
)
)
)
)
см .. во 2-ом массиве (основные данные), следует два массива правильно? со ссылкой 11.html и 12.html.
если есть ошибка из моего кода, дайте мне знать, если есть ссылка, чтобы сделать эту работу, дайте мне знать. спасибо
Функция OP 'sub()' прерывает итерацию после обнаружения первого дочернего элемента из-за возврата. Вот та же проблема. – Henrik