<?php

$array1 
= array(
'test1' => 'unclobbered',
'test2' => 'dontclobber',
'test3' => array(
    
'testarray1' => 'unclobbered2',
    
'testarray2' => 'dontclobber' )
);

$array2 = array(
'test1' => 'clobbered',
'test3' => array(
    
'testarray1' => 'clobbered2'
    
)
); 

function 
array_merge_clobber($a1$a2)
{
    if (!
is_array($a1) || !is_array($a2)) {
        return 
false;
    }
    foreach(
$a2 as $key => $val) {
        if (
is_array($val) &&
            isset(
$a1[$key]) &&
            
is_array($a1[$key])
        ) {
            
$a1[$key] = array_merge_clobber($a1[$key], $val);
        } else {
            
$a1[$key] = $val;
        }
    }
    return 
$a1;
}

echo 
'<pre>';
echo 
'phpversion()<br>';
echo 
phpversion().'<br>';
echo 
'php_uname()<br>';
echo 
php_uname().'<br>';
echo 
'$array1<br>';
print_r($array1);
echo 
'$array2<br>';
print_r($array2);
echo 
'array_merge_clobber($array1, $array2)<br>';
print_r(array_merge_clobber($array1$array2));
echo 
'$array1+$array2';
print_r($array1+$array2);
echo 
'$array2+$array1';
print_r($array2+$array1);
#echo 'array_merge_clobber($array1, $array2)<br>';
#print_r(array_merge_clobber($array1, $array2));
#echo 'array_merge_recursive($array1, $array2)<br>';
#print_r(array_merge_recursive($array1, $array2));
#echo '$array2<br>';
#print_r($array2);
#echo 'array_merge_clobber($array1, $array2)<br>';
#print_r(array_merge_clobber($array1, $array2));
echo '</pre>';
?>