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'=>int1 'key2'=>string'abc'(length=3) 'key3'=> array(size=3) 0=>int1 1=>int2 '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'=>int2 'key2'=>string'defg'(length=4) 'key3'=> array(size=4) 0=>int1 1=>int2 '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)