|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2002-01-11 04:32 UTC] philip at cornado dot com
[2002-04-24 11:02 UTC] andrei@php.net
[2002-11-12 04:39 UTC] philip@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 21:00:02 2025 UTC |
In Summary: -------------- array_merge_recursive() modifies the array entered as the second parameter if the merged arrays have at least one identical stringed key. It will affect all such duplicate keys, and modify the second parameter's array as demonstrated below. Example: -------------- <?php $a = array(2 => '2 a', 'foo' => 'foo a','bar' => 'bar a'); $b = array(2 => '2 b', 'foo' => 'foo b','bar' => 'bar b'); $c['recursive'] = array_merge_recursive($a,$b); $c['a'] = $a; $c['b'] = $b; print_r($c); ?> Example output: --------------- Array ( [recursive] => Array ( [0] => 2 a [foo] => Array ( [0] => foo a [1] => foo b ) [bar] => Array ( [0] => bar a [1] => bar b ) [1] => 2 b ) [a] => Array ( [2] => 2 a [foo] => foo a [bar] => bar a ) [b] => Array ( [2] => 2 b [foo] => Array ( [0] => foo b ) [bar] => Array ( [0] => bar b ) ) ) Notes: ---------------- Notice how in $b, keys 'foo' and 'bar' are now arrays when initially they were not. This behavior exists with all such duplicate stringed keys. array_merge_recursive() should not directly affect inputted values. This seems related to bug #14128.