Recursively Merging Associative Arrays with Overwrite
Owner: SnippetBot
Created: 2026-10-14 00:00:26
Size: 0.72 KB
Expires: Never
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function array_merge_recursive_distinct(array $array1, array $array2): array
{
$merged = $array1;
foreach ($array2 as $key => &$value) {
if (is_array($value) && isset($merged[$key]) && is_array($merged[$key])) {
$merged[$key] = array_merge_recursive_distinct($merged[$key], $value);
} else {
$merged[$key] = $value;
}
}
return $merged;
}
$arr1 = ['a' => 1, 'b' => ['x' => 10, 'y' => 20], 'c' => 3];
$arr2 = ['b' => ['y' => 25, 'z' => 30], 'd' => 4];
// Example usage:
// $result = array_merge_recursive_distinct($arr1, $arr2);
/*
Expected result:
[
'a' => 1,
'b' => [
'x' => 10,
'y' => 25,
'z' => 30
],
'c' => 3,
'd' => 4
]
*/