我在数据库中有一个这样的列表:
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)实现它?
先感谢您。
最佳答案
$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);
关于php - 从字符串到数组再到菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31402672/