美文网首页
主表列表查询子表合并数组 类似tp5关联模型

主表列表查询子表合并数组 类似tp5关联模型

作者: 一个人_f993 | 来源:发表于2019-01-10 20:08 被阅读0次
    
    /**
    
    * @param $oneArray 第一个数组
    
    * @param $twoArray 第二个数组
    
    * @param $oneField 第一个数组的字段
    
    * @param $towField 第二个数组的字段
    
    * @param $sub 子集索引名
    
    * @param bool $is_unset 是否删除子集为空的项
    
    * @return bool
    
    */
    
    function mergeSubArray(&$oneArray, $twoArray,$oneField, $towField, $sub,$is_unset=false)
    {
        if (!is_array($oneArray) || !is_array($twoArray)) {
            return false;
        }
        $result = array();
        foreach ($twoArray as $k => $v) {
            $result[$v[$towField]][] = $v;
        }
        foreach ($oneArray as $k1 => $v) {
            foreach ($result as $k2 => $item) {
                if ($k2 = $v[$oneField]) {
                    $oneArray[$k1][$sub] = isset($result[$k2])?$result[$k2]:[];
                    if ($is_unset&&empty($oneArray[$k1][$sub])){
                        unset($oneArray[$k1]);
                    }
                     break;//continue; 
                }
            }
        }
        $oneArray = array_values($oneArray); //重新生成索引
    }
    
    $this->mergeSubArray($one,$two,'id','adp_id','ad');
    
    $one 就是合并后的数组
    
    

    数组$one


    1.png

    数组$two


    2.png

    合并后数组$one


    3.png

    相关文章

      网友评论

          本文标题:主表列表查询子表合并数组 类似tp5关联模型

          本文链接:https://www.haomeiwen.com/subject/pnkzrqtx.html