php 评论无限极分类三级之后展示在第二级

话不多说直接放代码
不懂的直接评论

    public function list()
    {
        $id = (int)$this->request->input('weekly_reports_id');
        //查到数据
        $list = $this->model->where('weekly_reports_id', $id)->get()->toArray();
        $temp = [];
        foreach ($list as $key => $comment) {
        //parent_id为0的调用getSubtree方法进行递归循环
            if ($comment['parent_id'] == 0) {
                unset($list[$key]);
                $comment['childrenList'] = $this->getSubTree($list, $comment['id']);
                $temp[] = $comment;
            }
        }
        return $temp;
    }

    public function getSubTree($list, $pid)
    {
        $temp = [];
        foreach ($list as $key => $comment) {
            if ($comment['parent_id'] == $pid) {
                $temp[] = $comment;
                unset($list[$key]);
                $tempList = $this->getSubTree($list, $comment['id']);
                $temp = array_merge($temp, $tempList);
            }
        }
        return $temp;
    }

展示结果

{
  "msg": "获取成功",
  "data": [
    {
      "id": 1,
      "parent_id": 0,
      "content": "wrqwer",
      "user_id": 1,
      "date": "2020-07-23 10:43:28",
      "weekly_reports_id": 94,
      "target_user_id": 17,
      "created_at": null,
      "updated_at": null,
      "childrenList": [
        {
          "id": 2,
          "parent_id": 1,
          "content": "wqqqqq",
          "user_id": 90,
          "date": "2020-02-02 00:00:00",
          "weekly_reports_id": 94,
          "target_user_id": 17,
          "created_at": null,
          "updated_at": null,
          "commentUser": {
            "id": 90,
            "name": "张三",
            "avatar": "XXXXXXXXXXXX"
          },
          "targetUser": {
            "id": 17,
            "name": "李四",
            "avatar": "XXXXXXXXXXXXXXXXXX"
          }
        },
        {
          "id": 3,
          "parent_id": 2,
          "content": "qwrqwe",
          "user_id": 11,
          "date": "2020-04-20 00:00:00",
          "weekly_reports_id": 94,
          "target_user_id": 19,
          "created_at": null,
          "updated_at": null,
          "commentUser": {
            "id": 11,
            "name": "王五",
            "avatar": "XXXXXXXXXXXXXXXX"
          },
          "targetUser": {
            "id": 19,
            "name": "赵六",
            "avatar": "XXXXXXXXXXXXXXXXXXXXXXXX"
          }
        }
      ],
      "commentUser": {
        "id": 1,
        "name": "清风",
        "avatar": "XXXXXXXXXXXXXX"
      },
      "targetUser": {
        "id": 17,
        "name": "毛毛",
        "avatar": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
      }
    }
  ],
  "code": 200
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值