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