两个二维数组父子多对多关联

2020-06-15  本文已影响0人  dongdog
/**
 * 父子数组组装多对多
 *
 * @param array  $arr1     父数组
 * @param array  $arr2     子数组
 * @param string $arr1_key 数组1对应的键值
 * @param string $arr2_key 数组2对应的父级键值
 * @param string $child    父子关联键名
 *
 * @return mixed
 */
static function fatherSonManyToMany($arr1, $arr2, $arr1_key = 'id', $arr2_key = 'pid', $child = 'children')
{
    //父级
    foreach ($arr1 as $i => $item1) {
        //子级
        foreach ($arr2 as $j => $item2) {
            //父级与子级匹配
            if ($item1[$arr1_key] == $item2[$arr2_key]) {
                //去除子级关联ID
                unset($item2[$arr2_key]);
                $arr1[$i][$child][] = $item2;
            }
        }
        //          unset($arr1[$i][$arr1_key]);
    }
    return $arr1;
}
上一篇下一篇

猜你喜欢

热点阅读