//按照相同键值分组合并数组
$arr = [];//定义一个空数组
foreach ($date_info as $key => &$value) {//$date_info为需要合并的数组一
foreach ($setting as $k => $item) {//$setting为需要合并的数组二
if ($value['start'] === $item['start']) {//start为相同的键值字段
$temp = array_merge($value,$item);//合并
$arr[] = $temp;//复制给新的数组
}
}
}
$temp_ids = array_column($arr, 'start');//获取新数组中的start字段 生成仅含有start字段的数组
//判断是否每个数组中都含有start字段
$sub_1 = array_filter($date_info,function($o) use ($temp_ids){//过滤数组一中的元素 start字段
if (!in_array($o['start'], $temp_ids)) {//判断数组一中的start字段是否在数组$temp_ids中
return true;
}
});
$sub_2 = array_filter($setting,function($i) use ($temp_ids){//过滤数组二中的元素 start字段
if (!in_array($i['start'], $temp_ids)) {//判断数组二中的start字段是否在数组$temp_ids中
return true;
}
});
$data= array_merge_recursive($arr,$sub_1,$sub_2); //合并生成新的数组
1.arr