码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-09-04 08:44:53      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:php   树形菜单   

<?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>‘;

执行结果如图:

技术分享

本文出自 “我的IT生涯” 博客,请务必保留此出处http://quietnight.blog.51cto.com/7163892/1691261

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

标签:php   树形菜单   

原文地址:http://quietnight.blog.51cto.com/7163892/1691261

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!