Voting

: max(two, five)?
(Example: nine)

The Note You're Voting On

brian at vermonster dot com
20 years ago
Here is a fairly simple function that replaces while recursing.

<?php
/**
* array_merge_recursive2()
*
* Similar to array_merge_recursive but keyed-valued are always overwritten.
* Priority goes to the 2nd array.
*
* @static yes
* @public yes
* @param $paArray1 array
* @param $paArray2 array
* @return array
*/
function array_merge_recursive2($paArray1, $paArray2)
{
if (!
is_array($paArray1) or !is_array($paArray2)) { return $paArray2; }
foreach (
$paArray2 AS $sKey2 => $sValue2)
{
$paArray1[$sKey2] = array_merge_recursive2(@$paArray1[$sKey2], $sValue2);
}
return
$paArray1;
}

?>

Examples:
<?php

$array1
= array(
'liquids' => array(
'water' => array('cold', 'fizzy', 'clean')
,
'beer' => 'warm'
)
);

$array2 = array(
'liquids' => array(
'water' => 'hot'
,'milk' => 'wet'
)
);

$result1 = array_merge_recursive2($array1, $array2);
$result2 = array_merge_recursive2($array2, $array1);
?>

Result 1 is:
Array
(
[liquids] => Array
(
[water] => hot
[beer] => warm
[milk] => wet
)
)

Result 2 is:
Array
(
[liquids] => Array
(
[water] => Array
(
[0] => cold
[1] => fizzy
[2] => clean
)

[milk] => wet
[beer] => warm
)
)

<< Back to user notes page

To Top