从字符串到数组到菜单


I have a list in a DB like this one:

    ID| VAL
    1 | menu1 > submenu1
    2 | menu1 > submenu1 > subsubmenu1
    3 | menu1 > submenu1 > subsubmenu2
    4 | menu1 > submenu1 > subsubmenu3
    5 | menu1 > submenu1 > subsubmenu3 > lastmenu1
    6 | menu2 > submenu1 
    ...

and i would to use it to generate an ordered list like this one:

- menu1
  - submenu1          (a href="#")
    - subsubmenu1     (a href="$id")
    - subsubmenu2     (a href="$id")
    - subsubmenu3     (a href="#")
      - lastmenu1     (a href="$id")
- menu2               (a href="#")
  - submenu1          (a href="$id")

How to achieve it using PHP (and jQuery if needed)?
Thank you in advance.

$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);