在 PHP 中,array_merge()
函数用于合并两个或多个数组。但是,这个函数不能直接处理嵌套的数组结构。要合并嵌套数组,你需要使用递归函数来遍历数组的每个元素并合并它们。
下面是一个示例函数,用于合并嵌套数组:
function merge_nested_arrays($array1, $array2) {
$result = $array1;
foreach ($array2 as $key => $value) {
if (is_array($value) && isset($result[$key]) && is_array($result[$key])) {
$result[$key] = merge_nested_arrays($result[$key], $value);
} else {
$result[$key] = $value;
}
}
return $result;
}
// 示例数组
$array1 = [
'a' => 1,
'b' => [
'c' => 2,
'd' => [
'e' => 3
]
]
];
$array2 = [
'a' => 10,
'b' => [
'c' => 20,
'd' => [
'f' => 30
],
'g' => 40
]
];
// 合并数组
$mergedArray = merge_nested_arrays($array1, $array2);
// 输出结果
print_r($mergedArray);
这个 merge_nested_arrays
函数会递归地遍历数组的每个元素,如果遇到嵌套数组,它会调用自身来合并这些嵌套数组。最后,它返回合并后的数组。
在这个示例中,$mergedArray
将包含以下结构:
Array
(
[a] => 10
[b] => Array
(
[c] => 20
[d] => Array
(
[e] => 3
[f] => 30
)
[g] => 40
)
)