Есть таблица menu с колонками: id, value, id_parent.
В модели:
public function getMenu()
{
$sql = "SELECT * FROM menu";
return $this->db->query($sql);
}
В контроллере:
public function adminNavMenu()
{
$this->data['menu'] = $this->model->getMenu();
$result = [];
foreach ($this->data['menu'] as $key => $value) {
if ($value['id_parent'] == 0) {
$result[$value['id']] = $value;
} else {
$result[$value['id_parent']]['children'][] = $value;
}
}
}
Но оно неправильно выводит массив, ниже опубликовал вывод массива. Пытался вывести при помощи цикла или рекурсии, но ничего не получается...
Помогите, пожалуйста, исправить ошибки.
Само меню:
Menu1
Menu2->
Menu2-1
Menu2-2
Menu2-3->
Menu2-3-1
Неверный вывод после var_dump($result);
Array
(
[1] => Array
(
[id] => 1
[value] => Menu1
[id_parent] => 0
)
[2] => Array
(
[id] => 2
[value] => Munu2
[id_parent] => 0
[children] => Array
(
[0] => Array
(
[id] => 3
[value] => Menu2-1
[id_parent] => 2
)
[1] => Array
(
[id] => 4
[value] => Menu2-2
[id_parent] => 2
)
[2] => Array
(
[id] => 5
[value] => Menu2-3
[id_parent] => 2
)
)
)
[5] => Array
(
[children] => Array
(
[0] => Array
(
[id] => 6
[value] => Menu2-3-1
[id_parent] => 5
)
)
)
)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей