我正在考虑从这个SO项目实现递归函数:PHP: nested menu with a recursive function, expand only some nodes (not all the tree)在我的应用程序上构建一个右键菜单,需要获得嵌套级别。我试图通过这里的工作流程进行思考,但是无法想到将增量放在一个位置并将其重置为最终的变量,如:
$nestedLevel = 1; // main item
$nestedLevel = 2; // sub menu
$nestedLevel = 2; // sub-sub menu
我想用它来设置一些if语句,我可以用不同的方式处理每个级别。主级别将是一个简单列表,级别2将是一个水平按钮组,第三个将是从按钮组分配给选项卡的简单列表。这就是我所拥有的:
function recursive($parent, $array) {
$has_children = false;
foreach($array as $key => $value) {
if ($value['menu_parent_id'] == $parent) {
if ($has_children === false && $parent) {
$has_children = true;
echo '<ul>' ."\n";
}
echo '<li>' . "\n";
echo '<a href="/page.php?id=' . $value['menu_item_id'] . '">' . $value['name'] . '</a>' . " \n";
echo "\n";
recursive($key, $array);
echo "</li>\n";
}
}
if ($has_children === true && $parent) echo "</ul>\n";
}
最后它看起来像这样(当然还有一些样式):