* Arr.php
namespace app\common\utils;
class Arr
{
/**
* 多维数组合并 例如关联数组配置项默认值处理
* @param $array1
* @param $array2
* @return array
*/
public static function mergeMultiple($array1, $array2) {
// $merge = $array1 + $array2;
$merge = $array1;
foreach ($array2 as $k => $v) {
if (!isset($array1[$k])) {
$merge[$k] = $array2[$k];
}
}
$data = [];
foreach ($merge as $key => $val) {
if (
isset($array1[$key])
&& is_array($array1[$key])
&& isset($array2[$key])
&& is_array($array2[$key])
) {
$data[$key] = Arr::mergeMultiple($array1[$key], $array2[$key]);
} else {
$data[$key] = isset($array2[$key]) ? $array2[$key] : $array1[$key];
}
}
return $data;
}
}