Revision: 32467
Updated Code
at November 25, 2010 00:26 by mattlowden
Updated Code
function array_merge_replace(array $base_array, array $merge_array){
$new_array = array();
$key_list = array_unique( array_merge( array_keys( $base_array ), array_keys( $merge_array) ) );
foreach($key_list as $k)
{
if( !array_key_exists($k, $base_array) && array_key_exists($k, $merge_array) )
{
$new_array[$k] = $merge_array[$k];
}
elseif( array_key_exists($k, $base_array) && !array_key_exists($k, $merge_array) )
{
$new_array[$k] = $base_array[$k];
}
elseif( array_key_exists($k, $base_array) && array_key_exists($k, $merge_array) )
{
if( is_array($base_array[$k]) && is_array($merge_array[$k]) )
{
$new_array[$k] = array_merge_replace($base_array[$k], $merge_array[$k]);
}
else
{
$new_array[$k] = $merge_array[$k];
}
}
}
return $new_array;
}
Revision: 32466
Updated Code
at October 2, 2010 08:13 by mattlowden
Updated Code
function array_merge_replace(array $base_array, array $merge_array){
$new_array = array();
$key_list = array_unique( array_merge( array_keys( $base_array ), array_keys( $merge_array) ) );
foreach($key_list as $k){
if( !array_key_exists($k, $base_array) && array_key_exists($k, $merge_array) ){
$new_array[$k] = $merge_array[$k];
}elseif( array_key_exists($k, $base_array) && !array_key_exists($k, $merge_array) ){
$new_array[$k] = $base_array[$k];
}elseif( array_key_exists($k, $base_array) && array_key_exists($k, $merge_array) ){
if( is_array($base_array[$k]) && is_array($merge_array[$k]) ){
$new_array[$k] = array_merge_replace($base_array[$k], $merge_array[$k]);
}else{
$new_array[$k] = $merge_array[$k];
}
}
}
return $new_array;
}
Revision: 32465
Updated Code
at September 30, 2010 09:37 by mattlowden
Updated Code
function array_merge_replace(array $base_array, array $merge_array){
$new_array = array();
$key_list = array_unique( array_merge( array_keys( $base_array ), array_keys( $merge_array) ) );
foreach($key_list as $k){
if( empty($base_array[$k]) && !empty($merge_array[$k]) ){
$new_array[$k] = $merge_array[$k];
}elseif( !empty($base_array[$k]) && empty($merge_array[$k]) ){
$new_array[$k] = $base_array[$k];
}elseif( !empty($base_array[$k]) && !empty($merge_array[$k]) ){
if( is_array($base_array[$k]) && is_array($merge_array[$k]) ){
$new_array[$k] = array_merge_replace($base_array[$k], $merge_array[$k]);
}else{
$new_array[$k] = $merge_array[$k];
}
}
}
return $new_array;
}
Revision: 32464
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 25, 2010 19:29 by mattlowden
Initial Code
function array_merge_replace(array $base_array, array $merge_array){
$new_array = array();
$key_list = array_merge((array)$base_array, (array)$merge_array);
foreach($key_list as $k=>$v){
if((array_key_exists($k, $base_array) && is_array($base_array[$k])) || (array_key_exists($k, $merge_array) && is_array($merge_array[$k]))){
$new_array[$k] = array_merge_replace((array) $base_array[$k], (array) $merge_array[$k]);
}else{
$new_array[$k] = array_key_exists($k, $merge_array) ? $merge_array[$k] : $base_array[$k];
}
}
return $new_array;
}
Initial URL
http://www.mattlowden.com/blog/2010/02/deep-merging-two-arrays-in-php/
Initial Description
Function for deep merging multiple arrays
Initial Title
array_merge_replace
Initial Tags
Initial Language
PHP