What are the potential pitfalls of using array_merge_recursive in PHP when merging arrays with different values?

When using array_merge_recursive in PHP to merge arrays with different values, one potential pitfall is that it will recursively merge arrays, potentially overwriting values that you may not expect. To solve this issue, you can use a custom function that merges arrays without recursively merging sub-arrays.

function custom_array_merge($array1, $array2) {
    foreach ($array2 as $key => $value) {
        if (is_array($value) && isset($array1[$key]) && is_array($array1[$key])) {
            $array1[$key] = custom_array_merge($array1[$key], $value);
        } else {
            $array1[$key] = $value;
        }
    }
    
    return $array1;
}

$array1 = ['a' => 1, 'b' => ['c' => 2]];
$array2 = ['b' => 3, 'd' => 4];

$result = custom_array_merge($array1, $array2);

print_r($result);