Я создал функцию для получения многомерного меню из базы данных.PHP Многофункциональное меню объектов
public function get_menu($parent=0,$vis=1) {
$categories = array();
$this->db->from('ci_categories');
$this->db->where('cat_child',$parent);
$this->db->where('cat_vis',1);
$this->db->order_by('cat_order');
$q = $this->db->get();
$result = $q->result();
$i=0;
foreach($result as $mainCategory) {
$mainCategory->cat_subcategories = $this->get_menu($mainCategory->cat_id);
$categories[$i] = $mainCategory;
$i++;
}
return $categories;
}
Он работает, но я хотел бы распечатать меню. На данный момент я могу напечатать главное меню и одного ребенка с этим кодом:
if (count($menu) > 0) {
foreach($menu as $menu_item) {
$link = anchor("category/".$menu_item->cat_url, $menu_item->cat_name);
echo "<li>$link";
if (!empty($menu_item->cat_subcategories)) {
echo "<ul>";
foreach($menu_item->cat_subcategories as $subcat) {
$sub_link = anchor("category/".$subcat->cat_url, $subcat->cat_name);
echo "<li>$sub_link</li>";
}
echo "</ul>";
}
echo "</li>";
}
}
Это работает тоже, но как я мог распечатать даже третью или четвёртую подменю без Мануалы писать эти Еогеасп и сослагательного наклонения? Благодаря
использование рекурсии, чтобы пройти весь путь до конца ваших данных – Trogvar