note 34082 added to function.array-merge-recursive

From: Date: Tue, 15 Jul 2003 20:24:51 +0000
Subject: note 34082 added to function.array-merge-recursive
Groups: php.notes 
Request: Send a blank email to php-notes+get-52151@lists.php.net to get a copy of this message
Pass-by-reference and varargs version of kc at hireability dot com array_merge_clobber() function: function array_merge_clobber(&$a1 /* ... */) { if (! is_array($a1)) { trigger_error('First argument to array_merge_clobber() must be an array', E_USER_ERROR); return false; } $argc = func_num_args(); for ($i = 1; $i < $argc; $i++) { $a2 = func_get_arg($i); if (! is_array($a2)) { trigger_error('Argument #' . ($i+1) . ' to array_merge_clobber() is not an array; not merged', E_USER_WARNING); continue; } foreach ($a2 as $key => $val) { if (is_array($val) && is_array($a1[$key])) { array_merge_clobber($a1[$key], $val); } else { $a1[$key] = $val; } } } return true; } Not a drop in replacement (per se) for array_merge_recursive(), but it's got its benefits. Call thusly: $rc = array_merge_clobber($a1, $a2 /* , .... */); if ($rc) { echo 'a2 fed into a1 okay'; } else { echo 'something went awry'; } ---- Manual Page -- http://www.php.net/manual/en/function.array-merge-recursive.php Edit Note -- http://master.php.net/manage/user-notes.php?action=edit+34082 Delete Note -- http://master.php.net/manage/user-notes.php?action=delete+34082&report=yes Reject Note -- http://master.php.net/manage/user-notes.php?action=reject+34082&report=yes

« previous php.notes (#52151) next »