Welcome 微信登录

首页 / 网页编程 / PHP / PHP合并数组+号和array_merge的区别

PHP的数组融合一般有两种做法,一种是直接使用加号相加,另一种则是使用array_merge函数进行相加,两者之间有点区别:
1.相加会证数组中的自然index不被重置
2.相加方法中,被加的数组内的值不会被覆盖
3.merge函数中的自然index会被重置
4.merge函数,无所谓被merge和merge关系,越后面的array参数,其值,会覆盖较前面的array参数相同键的值
例子:
数组1:

$arr1 = array(10 => "valueof10",11 => "valueof11","key1" => "dataofkey1","key2" => "dataofkey2","array" => array("key1" => 1,"key2" => "abc","key3" => array(1, 2, "name" => "peter"),),);
数组2:

$arr2 = array(10 => "newvalueof10",11 => "newvalueof11","key1" => "newdataofkey1","key3" => "newdataofkey3","array" => array("key1" => 2,"key2" => "defg","key3" => array(1, 2, "name" => "jonathan", "gender" => "male"),),);
结果比较:
array (size=6) 10 => string "valueof10" (length=9) 11 => string "valueof11" (length=9) "key1" => string "dataofkey1" (length=10) "key2" => string "dataofkey2" (length=10) "array" => array (size=3) "key1" => int 1 "key2" => string "abc" (length=3) "key3" => array (size=3) 0 => int 1 1 => int 2 "name" => string "peter" (length=5) "key3" => string "newdataofkey3" (length=13) array (size=8) 0 => string "valueof10" (length=9) 1 => string "valueof11" (length=9) "key1" => string "newdataofkey1" (length=13) "key2" => string "dataofkey2" (length=10) "array" => array (size=3) "key1" => int 2 "key2" => string "defg" (length=4) "key3" => array (size=4) 0 => int 1 1 => int 2 "name" => string "jonathan" (length=8) "gender" => string "male" (length=4) 2 => string "newvalueof10" (length=12) 3 => string "newvalueof11" (length=12) "key3" => string "newdataofkey3" (length=13)