从递归菜单中获取嵌套级别

时间:2015-05-05 21:23:51

标签: php recursion

我正在考虑从这个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";
}

最后它看起来像这样(当然还有一些样式): rightclickmenu

0 个答案:

没有答案