使用PHP我制作了这样的数组,我将显示动态下拉列表菜单。
这是PHP数组示例:
Array
(
[0] => Array
(
[id] => 1
[id_subpage] => 0
[alias] => test
[title] => Test
)
[1] => Array
(
[id] => 2
[id_subpage] => 1
[alias] => test_2
[title] => Test 2
)
[2] => Array
(
[id] => 3
[id_subpage] => 1
[alias] => test_3
[title] => Test 3
)
[3] => Array
(
[id] => 4
[id_subpage] => 3
[alias] => test_4
[title] => Test 4
)
[4] => Array
(
[id] => 5
[id_subpage] => 3
[alias] => test_5
[title] => Test 5
)
[5] => Array
(
[id] => 6
[id_subpage] => 5
[alias] => test_6
[title] => Test 6
)
[6] => Array
(
[id] => 7
[id_subpage] => 0
[alias] => test_7
[title] => Test 7
)
)
...这是下拉列表菜单的示例:
<ul>
<li class="dropdown-submenu">
<a class="dropdown-toggle" data-toggle="dropdown" data-target="test" href="test">Test</a>
<ul class="dropdown-menu">
<li><a href="test_2">Test 2</a></li>
<li class="dropdown-submenu">
<a href="test_3">Test 3 <i class="fa fa-angle-right"></i></a>
<ul class="dropdown-menu" role="menu">
<li class="dropdown-submenu"><a href="test_4">Test 4</a></li>
<li class="dropdown-submenu">
<a class="dropdown-toggle" data-toggle="dropdown" data-target="test_5" href="test_5">
Test 5
<i class="fa fa-angle-right"></i>
</a>
<ul class="dropdown-menu">
<li class="dropdown-submenu"><a href="test_6">Test 6</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown-submenu"><a href="test_7">Test 7</a></li>
</ul>
任何人都可以帮我解决这个问题吗?谢谢,Daniel J!
修改
这是我的例子,但没有正确显示:
function createTree($menu, $currentParent, $currLevel = 0, $prevLevel = 0) {
foreach ($menu as $nav) {
$subpageID = $nav['id_subpage'];
if ($currentParent == $subpageID) {
$navID = $nav['id'];
$navTitle = $nav['title'];
$navAlias = $nav['alias'];
if ($currLevel > $prevLevel) echo "<ul class='dropdown-menu'>";
if ($currLevel == $prevLevel) echo "</li>";
?>
<li><a href="<?= url($navAlias) ?>"><?= $navTitle ?></a>
<?php
if ($currLevel > $prevLevel) $prevLevel = $currLevel;
$currLevel++;
createTree($menu, $navID, $currLevel, $prevLevel);
$currLevel--;
}
}
if ($currLevel == $prevLevel) echo "</li></ul>";
}
createTree($menu, 0)
变量$ menu是顶部的数组...