PHP多级联动数组

固定的5级数组,是个笨方法

 public function List()
    {
        $field = 'id,pid,name,title';
        $order = 'weigh desc';
        $where['pid'] = '0';
        $list = Db::name('table')->field($field)->where($where)->order($order)->select();

        $lists = [];
        foreach ($list as $key => $value) {
            $value['selected'] = '0';

            $valuchild = Db::name('table')->field($field)->where('pid', $value['id'])->order($order)->select();

            //二级不为空
            $vchildw = [];
            $valuechild = [];
            if (!empty($valuchild)) {
                foreach ($valuchild as $k => $v) {
                    $v['selected'] = '0';
                    $vchild = Db::name('table')->field($field)->where('pid', $v['id'])->order($order)->select();

                    //三级不为空
                    $vchild1 = [];
                    $valuechild1 = [];
                    if (!empty($vchild)) {
                        foreach ($vchild as $a => $b) {
                            $b['selected'] = '0';
                            $bchild = Db::name('table')->field($field)->where('pid', $b['id'])->order($order)->select();
                            //四级不为空
                            $vchild11 = [];
                            $valuechild11 = [];
                            if (!empty($bchild)) {
                                foreach ($bchild as $a1 => $b1) {
                                    $b1['selected'] = '0';
                                    $b1['child'] = Db::name('table')->field($field)->where('pid', $b1['id'])->order($order)->select();
                                    $childs11 = [];
                                    foreach ($b1['child'] as $a11 => $b11) {
                                        $b11['selected'] = '0';
                                        $childs11[] = $b11;
                                    }
                                    $b1['child'] = $childs11;
                                    $vchild11[] = $b1;
                                }
                                array_push($valuechild11, $vchild11);
                            }
                            $b['child'] = !empty($valuechild11) ? $valuechild11[0] : [];
                            $vchild1[] = $b;
                        }
                        array_push($valuechild1, $vchild1);
                    }

                    $v['child'] = !empty($valuechild1) ? $valuechild1[0] : [];
                    $vchildw[] = $v;
                }
                array_push($valuechild, $vchildw);
            }
            $value['child'] = !empty($valuechild) ? $valuechild[0] : [];
            $lists[] = $value;
        }
        $this->success('Success', $lists);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值