在 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
)
)