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)