00001 <?php 00018 function array_merge_replace( $array, $newValues ) { 00019 foreach ( $newValues as $key => $value ) { 00020 if ( is_array( $value ) ) { 00021 if ( !isset( $array[ $key ] ) ) { 00022 $array[ $key ] = array(); 00023 } 00024 $array[ $key ] = array_merge_replace( $array[ $key ], $value ); 00025 } else { 00026 if ( isset( $array[ $key ] ) && is_array( $array[ $key ] ) ) { 00027 $array[ $key ][ 0 ] = $value; 00028 } else { 00029 if ( isset( $array ) && !is_array( $array ) ) { 00030 $temp = $array; 00031 $array = array(); 00032 $array[0] = $temp; 00033 } 00034 if( is_object( $value ) ) { 00035 $array[ $key ] =& $newValues[ $key ]; 00036 } else { 00037 $array[ $key ] = $value; 00038 } 00039 } 00040 } 00041 } 00042 return $array; 00043 } 00044 ?> 00045