/**
* @param $oneArray 第一個(gè)數(shù)組
* @param $twoArray 第二個(gè)數(shù)組
* @param $oneField 第一個(gè)數(shù)組的字段
* @param $towField 第二個(gè)數(shù)組的字段
* @param $sub 子集索引名
* @param bool $is_unset 是否刪除子集為空的項(xiàng)
* @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 就是合并后的數(shù)組
數(shù)組$one

1.png
數(shù)組$two

2.png
合并后數(shù)組$one

3.png