Я пытаюсь создать динамическое меню из данных, которые я генерирую из jstree.
Значения Jstree будут храниться в базе данных следующим образом:
Id | Имя | Родитель | Иконка | Ссылка
Итак, я создал метод для чтения каждой строки из базы данных (propel) и сохранения ее в массиве, чтобы Smarty могла динамически создавать меню.
Это моя функция:
$menu_content = array();
foreach($result as $key => $r) {
if($r['Id'] != 1) {
$Id = $r['Id'];
$menu_content[$r['Id']] = array(
"name" => $r['Name'],
"link" => $r['Link'],
"icon" => $r['Icon']
);
unset($result[$key]);
foreach($result as $key_children => $c) {
if($c['Parent'] == $r['Id']) {
$menu_content[$r['Id']]['children'][] = array(
"name" => $c['Name'],
"link" => $c['Link'],
"icon" => $c['Icon']
);
unset($result[$key_children]);
$Idc = $c['Id'];
foreach($result as $key_grandchild => $cc) {
if($cc['Parent'] == $c['Id']) {
$menu_content[$r['Id']]['children']['grandchild'][] = array(
"name" => $cc['Name'],
"link" => $cc['Link'],
"icon" => $cc['Icon']
);
unset($result[$key_grandchild]);
}
}
}
}
}
Так что он должен хранить такие значения:
$ Menu_content [родитель] [дети] [внуки].
Эта часть кода работает нормально, но она не сбрасывает значения детей и внуков, поэтому я получаю их два. Первый раз в правильном порядке и после этого как родительские дети.
Заранее спасибо.