如何从单个表创建codeigniter动态菜单

quhf5bfb  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(320)

我有一张这样的tablename:menu

Id menu submenu      childmenu
1. Oil. Edible.      Coconut oil
2. Oil. Edible.      Sunflowe oil
3. Oil. Non edible.  Deepa oil
4. Oil  non edible.  Coconut oil

我的预期产出是

Oil 
 Edible
   Coconut oil
   Sunflower oil
 Non edible
   Deepa oil
   Coconut oil

如何创建这样的菜单。谢谢你的回答

yqkkidmi

yqkkidmi1#

这应该让你开始。如果您已经阅读了文档(您应该阅读这些文档),那么其余的内容就不言自明了。

$array = array(
    array(
        'id' => '1',
        'menu' => 'Oil',
        'submenu' => 'editable',
        'childmenu' => 'coco oil'
    ),
    array(
        'id' => '2',
        'menu' => 'Oil',
        'submenu' => 'editable',
        'childmenu' => 'sunflower'
    ),
    array(
        'id' => '3',
        'menu' => 'Oil2',
        'submenu' => 'noneditable',
        'childmenu' => 'deepa'
    ),
);
// CONTROLLER
$_data = array();
// $array will come from model result_array()
foreach ($array as $item) {
    $_data[$item['menu']][$item['submenu']][] = $item['childmenu'];
}
// send $_data to view
// VIEW
foreach ($_data as $menu => $submenu) {
    echo '<i>' . $menu . '</i><br>';
    foreach ($submenu as $name => $childmenu) {
        echo '<strong>' . $name . '</strong><br>';
        foreach ($childmenu as $item) {
            echo $item . '<br>';
        }
    }
}

基本上,我重新安排了数组,使其更易于使用。这样就避免了我们以后在视图中检查foreach中的特定子菜单。

相关问题