当合并的数组是,数值键名相同时,array_merge()、array_merge_recursive()不会覆盖,+是前盖后;
JAVA
[1] => PHP
[2] => PYTHON
[3] => PHP
[4] => C++
[5] => PYTHON
[6] => PHP
)
Array
(
[0] => JAVA
[1] => PHP
[2] => PYTHON
[3] => PHP
[4] => C++
[5] => PYTHON
[6] => PHP
)
Array
(
[0] => JAVA
[1] => PHP
[2] => PHP
)
2、字符串数组
键名各不相同时,array_merge()、+、array_merge_recursive()不会覆盖。
#键名不同
$a1=array('a'=>"1",'b'=>"2");
$a2=array('c'=>"3",'d'=>"4");
$a3=array('e'=>"5",'f'=>"6");
print_r(array_merge($a1,$a2,$a3));
print_r(array_merge_recursive($a1,$a2,$a3));
print_r($a1+$a2+$a3)
#结果相同
Array
(
[a] => 1
[b] => 2
[c] => 3
[d] => 4
[e] => 5
[f] => 6
)
存在键名相同时,array_merge()后边值覆盖前面的值,+是前盖后,array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组;
$a1=array('a'=>"1",'b'=>"2");
$a2=array('a'=>"3",'d'=>"4");
$a3=array('a'=>"5",'f'=>"6");
print_r(array_merge($a1,$a2,$a3));
print_r(array_merge_recursive($a1,$a2,$a3));
print_r($a1+$a2+$a3);
#结果
Array
(
[a] => 5
[b] => 2
[d] => 4
[f] => 6
)
Array
(
[a] => Array
(
[0] => 1
[1] => 3
[2] => 5
)
[b] => 2
[d] => 4
[f] => 6
)
Array
(
[a] => 1
[b] => 2
[d] => 4
[f] => 6
)



