= 5.3.0. * Defining it here when necessary. * * @param array $array an array * @param array $array1 an array * * @return array */ function array_replace_recursive($array, $array1) { if (!function_exists('addthis_recurse')) { /** * A recursive function for array_replace_recursive * * @param array $array an array * @param array $array1 an array * * @return array */ function addthis_recurse($array, $array1) { foreach ($array1 as $key => $value) { if (!isset($array[$key]) || (isset($array[$key]) && !is_array($array[$key])) ) { $array[$key] = array(); } if (is_array($value)) { $value = addthis_recurse($array[$key], $value); } $array[$key] = $value; } return $array; } } // handle the arguments, merge one by one $args = func_get_args(); $array = $args[0]; if (!is_array($array)) { return $array; } for ($i = 1; $i < count($args); $i++) { if (is_array($args[$i])) { $array = addthis_recurse($array, $args[$i]); } } return $array; } }