从字符串到数组再到菜单




我在数据库中有一个列表,如下所示:

ID | VAL1|menu1>子菜单12|menu1>子菜单1>子菜单13|menu1>子菜单1>子菜单24|menu1>子菜单1>子菜单35|menu1>子菜单1>子菜单3>lastmenu16|menu2>submenu1。。。

我想用它来生成一个有序的列表,比如这个:

-菜单1-submenu1(a href="#"(-subsubbmenu1(a href="$id"(-subsubbmenu2(a href="$id"(-subsubbmenu3(a href="#"(-lastmenu1(a href="$id"(-menu2(a href="#"(-submenu1(a href="$id"(

如何使用PHP(如果需要,还可以使用jQuery(实现它
提前谢谢。

$a = [
    1 => "menu1 > submenu1",
    2 => "menu1 > submenu1 > subsubmenu1",
    3 => "menu1 > submenu1 > subsubmenu2",
    4 => "menu1 > submenu1 > subsubmenu3",
    5 => "menu1 > submenu1 > subsubmenu3 > lastmenu1",
    6 => "menu2 > submenu1 ",
];
function addMenuItem(&$arr, array $items, $id) {
    $a = &$arr;
    while ($name = array_shift($items)) {
        if (!isset($a[$name])) {
            $a[$name] = [
                'id' => $id,
                'items' => [],
            ];
        }
        $a = &$a[$name]['items'];
    }
}
$menu = [];
foreach($a as $id => $i) {
    $menuItem = explode(' > ', $i);
    addMenuItem($menu, $menuItem, $id);
}
var_dump($menu);

相关内容

  • 没有找到相关文章

最新更新