note 42663 added to function.array-merge-recursive

From: Date: Tue, 25 May 2004 18:44:21 +0000
Subject: note 42663 added to function.array-merge-recursive
Groups: php.notes 
Request: Send a blank email to php-notes+get-70076@lists.php.net to get a copy of this message
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 ) ) ---- Manual Page -- http://www.php.net/manual/en/function.array-merge-recursive.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+42663 Delete -- http://master.php.net/manage/user-notes.php?action=delete+42663&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+42663&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#70076) next »