首先数据表类似于这样,然后进行数据查询获取所有的数据
$sql ="select * from ec_admin_role where ar_state=1 order by ar_level"; $roles = $g_db->getAll($sql); $g_db->close(); $list=roletree($roles,0);//调用函数按父级id进行排序 foreach($list as $k=>$v) { $list[$k]['ar_name'] = str_repeat('----',$v['ar_level']).$v['ar_name'].'<br>'; } //将角色经排序 function roletree($arr,$id=0) { $subs = array(); // 子孙数组 foreach($arr as $v) { if($v['ar_parent_id'] == $id) { $subs[] = $v; $subs = array_merge($subs,roletree($arr,$v['ar_id'])); } } return $subs; }
然后在静态页面循环输出,效果如下:
显示效果谁添加下级,那个下级就紧挨着谁