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