为了账号安全,请及时绑定邮箱和手机立即绑定

php递归问题求解

php递归问题求解

PHP
月关宝盒 2019-03-15 12:36:25
大神们,我这个递归哪有问题啊,为嘛$res的结果只有一个数值???传入的$pid是一个顶级分类id,$arr是包含所有pid和id的数组.
查看完整描述

5 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

感觉是数据源有问题。代码逻辑没有问题

查看完整回答
反对 回复 2019-03-18
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

function getTree($id, $data)
{
    $ret = [];
    foreach ($data as $key => $val) {
        if ($val['parent_id'] == $id) {
            $tmp = $data[$key];
            unset($data[$key]);
            count(getTree($val['id'], $data)) && $tmp['children'] = getTree($val['id'], $data);
            $ret[] = $tmp;
        }
    }

    return $ret;
}

抄来的。。。

查看完整回答
反对 回复 2019-03-18
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

调用函数的第二个参数错了,不应该再是arr应该是v

查看完整回答
反对 回复 2019-03-18
?
Qyouu

TA贡献1786条经验 获得超11个赞

因为你没保存返回值啊。
foreach里的getChild方法的返回值不要了吗?

查看完整回答
反对 回复 2019-03-18
?
智慧大石

TA贡献1946条经验 获得超3个赞

$res = $this->getChild($v['id'], $arr);,递归没有赋值给存储结果的 $res

查看完整回答
反对 回复 2019-03-18
  • 5 回答
  • 0 关注
  • 457 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信