我在这样的数据库中有一个列表:
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 ...
我会用它来生成一个像这样的有序列表:
- 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")
如何使用PHP(以及jQuery,如果需要)实现它? 先感谢您。
答案 0 :(得分:0)
$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);