php怎样实现数组合并但键值相同的数组不互相覆盖

数组合并array_merge($arr1,$arr2)和数组相加$arr1+$arr2的区别:
数字索引数组:
array_merge:合并生成的数组的索引统一从0开始,所以不存在覆盖的情况.
"+"操作符:不改变数字索引,如果索引已经存在,则跳过该元素.
字符索引数组:
array_merge:如果两个数组存在相同的键,后面的一个会覆盖前面的.
"+"操作符:如果两个数组存在相同的键,前面的一个会覆盖后面的.
\u0026lt;?php$arr1 = array(\u0026#39;k1\u0026#39; =\u0026gt; \u0026#39;a\u0026#39;, \u0026#39;k2\u0026#39; =\u0026gt; \u0026#39;b\u0026#39;);$arr2 = array(\u0026#39;k1\u0026#39; =\u0026gt; \u0026#39;c\u0026#39;, \u0026#39;k2\u0026#39; =\u0026gt; \u0026#39;d\u0026#39;);var_export(array_merge($arr1, $arr2)); // array(\u0026#39;k1\u0026#39; =\u0026gt; \u0026#39;c\u0026#39;, \u0026#39;k2\u0026#39; =\u0026gt; \u0026#39;d\u0026#39;)var_export($arr1 + $arr2); // array(\u0026#39;k1\u0026#39; =\u0026gt; \u0026#39;a\u0026#39;, \u0026#39;k2\u0026#39; =\u0026gt; \u0026#39;b\u0026#39;)?\u0026gt;\u0026lt;?php$arr1 = array(0 =\u0026gt; \u0026#39;a\u0026#39;, 1 =\u0026gt; \u0026#39;b\u0026#39;);$arr2 = array(0 =\u0026gt; \u0026#39;c\u0026#39;, 1 =\u0026gt; \u0026#39;d\u0026#39;);var_export(array_merge($arr1, $arr2)); // array (0 =\u0026gt; \u0026#39;a\u0026#39;, 1 =\u0026gt; \u0026#39;b\u0026#39;, 2 =\u0026gt; \u0026#39;c\u0026#39;, 3 =\u0026gt; \u0026#39;d\u0026#39;)var_export($arr1 + $arr2); // array (0 =\u0026gt; \u0026#39;a\u0026#39;, 1 =\u0026gt; \u0026#39;b\u0026#39;)?\u0026gt;所以,楼主举例的情况,用array_merge即可.

■网友
array_replace_recursive()array array_replace_recursive ( array $array1 , array $array2 )
■网友
/** * @author 昌维\u0026lt;867597730@qq.com\u0026gt; * @param array* @return array*/ function array_add($a1,$a2){\t$n = 0;\tforeach ($a1 as $key =\u0026gt; $value) {\t\t$re = $value;\t\t$n++;\t}\tforeach ($a2 as $key =\u0026gt; $value) {\t\t$re = $value;\t\t$n++;\t}\treturn $re;}用这个函数,a1和a2就是要合并的两个数组,返回合并后的数组
■网友
【php怎样实现数组合并但键值相同的数组不互相覆盖】 array_replace_recursive()
php怎样实现数组合并但键值相同的数组不互相覆盖

php怎样实现数组合并但键值相同的数组不互相覆盖


■网友
换个存法\u0026lt;?php$a = array( array(0, \u0026#39;a\u0026#39;), array(1, \u0026#39;b\u0026#39;));$b = array( array(0, \u0026#39;c\u0026#39;), array(1, \u0026#39;d\u0026#39;));var_dump(array_merge($a, $b));/*array(4) { =\u0026gt; array(2) { =\u0026gt; int(0) =\u0026gt; string(1) "a" } =\u0026gt; array(2) { =\u0026gt; int(1) =\u0026gt; string(1) "b" } =\u0026gt; array(2) { =\u0026gt; int(0) =\u0026gt; string(1) "c" } =\u0026gt; array(2) { =\u0026gt; int(1) =\u0026gt; string(1) "d" }}*/


推荐阅读