递归遍历一个二维数组,只得每一级的第一个节点

iamsingfly 2009-06-24 12:30:50
递归遍历一个二维数组,数组的形式见函数下面的数据,遍历的目的是组成一个层层包含的json结构,问题是现在只得每一级的第一个节点, 而且结果变量里面,根本没有东西,这个代码复制后就可以使用。请大家帮忙看看

<?php
function buildDepartmentByRecursion($srcArray, $departJsonResultArray, $superdeptid){
//对一个二维数组进行遍历
if(is_array($srcArray)){
foreach($srcArray[$superdeptid] as $key => $dept){
//不用管上一层的结构,因为顶级部门的父id,就是0,在树节点上是不显示的。

//构造本部门的json结构
$tempArray = array();
$dept_id = $dept[departmentid];
$tempArray['id'] = "".$dept_id;
$tempArray['txt'] = $dept[dept_name];
//echo($dept[dept_name]);
//如果没有子部门了 那么返回
if($srcArray[$dept_id] == null || count($srcArray[$dept_id]) < 1){
echo($dept[dept_name]."没有子部门");
return $tempArray;


}
echo($dept[dept_name]."有子部门");
//如果有子部门 那么继续递归
$tempArray = buildDepartmentByRecursion($srcArray ,$departJsonResultArray, $dept_id, $level+1);

//将本层已经递归后的顶级部门数据添加到结果数据
$departJsonResultArray[] = $tempArray;


}
}

//return $departJsonResultArray;
}


$sourceArr = array(
array("departmentid"=>1, "dept_name"=>"顶级部门","super_dept_id"=>0),
array("departmentid"=>2, "dept_name"=>"二级部门1","super_dept_id"=>1),
array("departmentid"=>3, "dept_name"=>"二级部门2","super_dept_id"=>1),
array("departmentid"=>4, "dept_name"=>"二级部门3","super_dept_id"=>1),
array("departmentid"=>5, "dept_name"=>"三级部门1","super_dept_id"=>2),
array("departmentid"=>6, "dept_name"=>"三级部门2","super_dept_id"=>2)

);


$arr = array();
$i=1;
$arr[0][1]=$sourceArr[1-$i];
$arr[1][2]=$sourceArr[2-$i];
$arr[1][3]=$sourceArr[3-$i];
$arr[1][4]=$sourceArr[4-$i];
$arr[2][5]=$sourceArr[5-$i];
$arr[2][6]=$sourceArr[6-$i];


$result = array();
buildDepartmentByRecursion($arr, $result, 0);
print_r($result);
?>
...全文
195 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzl8146 2009-06-24
  • 打赏
  • 举报
回复

buildDepartmentByRecursion($arr, &$result, 0);


這樣有輸出,但不是你想要的
kisrap 2009-06-24
  • 打赏
  • 举报
回复
·双线主机 100M/35元/年,免费送数据库(自选MY/MSSQL)
·详情请访问:http://www.515dns.com
岑子哥 2009-06-24
  • 打赏
  • 举报
回复
我这可以输出啊,不知都你要实现什么功能。
至于变量你$$这样试试。

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧