php递归生成树型数组

$tree=Array([1]=>Array([id]=>820001,[name]=>张伟,[parent]=>0)[2]=>Array([id]=>820002,[n... $tree=Array( [1] => Array ( [id] => 820001 , [name] => 张伟 , [parent] => 0)
[2] => Array ( [id] => 820002 , [name] => 李欣 , [parent] => 0)
[3] => Array ( [id] => 820003 , [name] => 李静 , [parent] => 820001)
[4] => Array ( [id] => 820004 , [name] => 王磊 , [parent] => 820001)
[5] => Array ( [id] => 820005 , [name] => 赵旭 , [parent] => 820004))
将上面这个数组转换成下面这种树型数组
$tree=Array( [张伟]=>Array( [820003]=>李静
[王磊]=>Array([82005]=赵旭)
[820002]=>张欣)

谢谢
展开
 我来答
百度网友21103e5
2015-03-17 · TA获得超过327个赞
知道小有建树答主
回答量:478
采纳率:0%
帮助的人:256万
展开全部
public function tree(&$list, $parent) {
//保证找到的元素都放在一个数组$tree内,应该是$tree在所有的tree函数都共享
static $tree;
//遍历该数组,找到parent值为当前传递进来的$parent_id;
foreach($list as $row) {
//判断
if($row['parent'] == $parent) {
//保存起来
$tree[] = $row;
//依据当前所找到的分类,找到其子节点,操作相同,递归完成
$this->tree($list, $row['id']);
}
}
return $tree;
}
你把你的数组带进去,这个是在类里面实现的,如果你只是想单独用个方法,你就把public以及'$this->'去掉就行了
更多追问追答
追问
不对出来的数组不是我需要的
追答
你把得到的数组打印一下,出来看看,跟你的差距在什么地方,这个就是树状结构的函数,得出来就是树状结构的数组。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式