PHP 递归函数

1.直接显示没有层级显示区别

public function tree($userinfo, $id, &$children, $ds = 0, $level = 0)

    {

        if (!$id) {

            return 'parent_id is null';

        }

        $level++;

        foreach ($userinfo as $key => $value) {

            if ($ds) {

                if ($level > $ds) continue;

            }

            if ($value['parent_id'] == $id) {

                $children[] = ['id' => $value['id'], "parent_id" => $value['parent_id'], "level" => $level];

                // $children[] = $value['id'].$value['parent_id'];

                $this->findBottoms($userinfo, $value['id'], $children, $ds, $level);

            }

        }

        return $children;

    }


2.有明显的层级区分

 public function tree($arrCat, $pid = 0, $dj = 0)

    {

        $child = ["sum" => 0, 'uid' => $pid];   // 定义存储子级数据数组

        foreach ($arrCat as $key => $value) {

            if ($value['pid'] == $pid) {

                $child['sum'] += $this->model->where(['id' => $value['id']])->value('money');

                unset($arrCat[$key]);  // 使用过后可以销毁

                $value['child'] = $this->tree_levle($arrCat, $value['id']);   // 递归调用,查找当前数据的子级

                $child[] = $value;   // 把子级数据添加进数组

            }

        }

        return $child;

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容