温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php小代码----树形菜单生成

发布时间:2020-07-15 20:49:10 来源:网络 阅读:2161 作者:hello_world007 栏目:web开发
<?php
header("Content-type:text/html; charset=UTF-8"); 
$mixTree = array();
/*
 * 每个结果中的重点数据两个一个是id一个是指向其父结点id的parent
 */
$mixTree[] = array('id'=>0,'val'=>'顶级菜单1','parent'=>-1);
$mixTree[] = array('id'=>1,'val'=>'顶级菜单2','parent'=>-1);
$mixTree[] = array('id'=>2,'val'=>'顶级菜单1下的二级菜单1','parent'=>0);
$mixTree[] = array('id'=>3,'val'=>'顶级菜单1下的二级菜单2','parent'=>0);
$mixTree[] = array('id'=>4,'val'=>'顶级菜单2下的二级菜单1','parent'=>1);
$mixTree[] = array('id'=>5,'val'=>'顶级菜单1下的二级菜单2下的三级菜单1','parent'=>3);

/*
 * 通过二维数组把上面的数据挂载成树
 */
$treeDatas = array();
foreach($mixTree as $nodeDatas){
    if($nodeDatas['parent']==-1){
        $treeDatas[-1][]=$nodeDatas;
    }else{
        $treeDatas[$nodeDatas['parent']][]=$nodeDatas;
    }
}

/*
 * 遍历打印其父结点及其子结点
 */
function traverSesing($nodeDatas,$treeDatas){
    echo $nodeDatas['val'];
    if(!empty($treeDatas[$nodeDatas['id']])&& is_array($treeDatas[$nodeDatas['id']])){
        echo '<ul>';
        foreach($treeDatas[$nodeDatas['id']] as $childNodeDatas){
            echo '<li>';
            traverSesing($childNodeDatas, $treeDatas);
            echo '</li>';
        }
        echo '</ul>';
    }
    
}
 echo '<ul>';
foreach($treeDatas[-1] as $nodeDatas){
    echo '<li>';
    traverSesing($nodeDatas, $treeDatas);
    echo '</li>';
}
echo '</ul>';

执行结果如图:

php小代码----树形菜单生成

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI