1){ $pro_id = substr($pro_id,0,stripos($pro_id,"(")); } echo $pro_id; $ArrData=array( array("level"=>1,"id"=>1,"pid"=>0,"name"=>"一级菜单1"), array("level"=>1,"id"=>2,"pid"=>0,"name"=>"一级菜单2"), array("level"=>1,"id"=>3,"pid"=>1,"name"=>"二级菜单1"), array("level"=>1,"id"=>4,"pid"=>0,"name"=>"一级菜单3"), array("level"=>1,"id"=>5,"pid"=>1,"name"=>"二级菜单2"), array("level"=>1,"id"=>6,"pid"=>2,"name"=>"二级菜单1"), array("level"=>1,"id"=>7,"pid"=>6,"name"=>"三级菜单1"), array("level"=>1,"id"=>8,"pid"=>7,"name"=>"四级菜单1"), array("level"=>1,"id"=>9,"pid"=>1,"name"=>"二级菜单3") ); $ArrData=MultiLevelConvert1($ArrData,0); echo json_encode($ArrData); //print_r($ArrData); echo "
"; foreach ($ArrData as $value) { for($x=1;$x<$value["level"];$x++) {echo "--";} echo $value["name"].'
'; } echo "

"; $ArrDepartmentData=array(); $sqls = "select id,vID,vtext,vType,vOrder,vtitle from dictionary as a where vtitle='OA_Department' and vType>=0 order by vOrder desc" ; $data = sqlsrv_query($conn,$sqls); if($data == true){ while($rs = sqlsrv_fetch_array( $data, SQLSRV_FETCH_ASSOC) ) { array_push($ArrDepartmentData,array("level"=>1,"id"=>$rs['vID'],"pid"=>$rs['vType'],"name"=>$rs['vtext'],"Order"=>$rs['vOrder'])); } } //$ArrDepartmentData=MultiLevelConvert2(MultiLevelConvert1($ArrDepartmentData,0),0); //组成多级数组 function MultiLevelConvert1($arr,$id){ $res = array(); foreach ($arr as $key => $value) { if ($value["pid"] == $id) { $value["child"]=MultiLevelConvert1($arr,$value["id"]); array_push($res,$value); } } return $res; } //重新整理成一维数组 function MultiLevelConvert2($arr,$level){ $res = array(); foreach ($arr as $key => $value) { if (count($value)>0) { $value["level"]=$level; if (count($value['child'])>0) { $res2=MultiLevelConvert2($value['child'],$level+1); array_pop($value);array_push($res,$value); foreach ($res2 as $key => $value) {array_push($res,$value);} } else {array_pop($value);array_push($res,$value);} } } return $res; } //echo json_encode($ArrDepartmentData); //print_r($ArrDepartmentData); //echo json_encode($ArrDepartmentData); foreach ($ArrDepartmentData as $value) { for($x=0;$x<$value["level"];$x++) {echo "--";} echo $value["name"].'
'; } ?>