/**
* @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
数组$two
合并后数组$one