php递归问题: 5

public$arr=array();publicfunctionget_child($id,$level){foreach($this->arras$value){if... public $arr = array();

public function get_child($id,$level){
foreach($this->arr as $value){
if($value['parentid'] == $id){
$value['level'] = $level;
$child[$value['id']] = $value;
}
}
return $child;
}

public function menu($id=0,$level=1){//默认从顶级菜单开始
$child = $this->get_child($id,$level);
if(is_array($child)){
foreach($child as $key=>$value){
$menu_arr[$value['id']] = $value;
$this->menu($value['id'],$level);
$level++;
}
}
return $menu_arr;
}
$this->menu($value['id'],$level);

这一句去掉的效果跟不去掉是一样的,但是期望的是实现递归
Array ( [1] => Array ( [id] => 1 [name] => 我的面板 [parentid] => 0 [level] => 1 ) [2] => Array ( [id] => 2 [name] => 站点配置 [parentid] => 0 [level] => 1 ) [3] => Array ( [id] => 3 [name] => 内容管理 [parentid] => 0 [level] => 1 ) [4] => Array ( [id] => 4 [name] => 管理员管理 [parentid] => 0 [level] => 1 ) [5] => Array ( [id] => 5 [name] => 会员管理 [parentid] => 0 [level] => 1 ) [6] => Array ( [id] => 6 [name] => 功能管理 [parentid] => 0 [level] => 1 ) )
这是结果,但是想用递归算法将其他记录也能存入$menu_arr数组中
展开
 我来答
liuxing801
2012-07-05 · TA获得超过149个赞
知道小有建树答主
回答量:258
采纳率:100%
帮助的人:128万
展开全部
不明白其他记录是什么记录,另:
foreach($child as $key=>$value){
$menu_arr[$value['id']] = $value;
//$this->menu($value['id'],$level);
$level++;
}
这好像已经放到$menu_arr里了。。。
ckqiuhewei
2012-07-03
知道答主
回答量:34
采纳率:0%
帮助的人:15.9万
展开全部
什么问题都不说清楚
追问
就是递归没有起作用
追答
foreach($child as $key=>$value){
$menu_arr[$value['id']] = $value;
$this->menu($value['id'],$value['level']);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式