What are some alternative approaches to merging arrays in PHP that can handle duplicate keys?

When merging arrays in PHP using functions like `array_merge` or the `+` operator, duplicate keys are overwritten with the value from the second array. To handle duplicate keys and merge arrays without overwriting values, one approach is to loop through each array and manually merge them, checking for duplicate keys and handling them accordingly.

function merge_arrays($array1, $array2) {
    $merged = $array1;

    foreach ($array2 as $key => $value) {
        if (array_key_exists($key, $merged)) {
            // Handle duplicate key, for example by appending a suffix
            $key = $key . '_duplicate';
        }
        $merged[$key] = $value;
    }

    return $merged;
}

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

$merged_array = merge_arrays($array1, $array2);
print_r($merged_array);