PHP数组合并的2种方法
1、数组加法:
将$b的元素加到$a的后面,如果有相同的键值(不管是字符串键值还是数字键值)跳过,即保留$a的元素。
$a = array('x0','y0','z0','key0'=>'v0');
$b = array('x1','y1','z1','key0'=>'v1','b1','key1'=>'v2');
$c = $a+$b;
print_r($c);
结果是:
Array
(
[0] => x0
[1] => y0
[2] => z0
[key0] => v0
[3] => b1
[key1] => v2
)
可以看到不管是数字键值0,1,2 还是字符串键值key0都使用的是$a的值,只有不存在的3和key1被加到了后面。
注意:$a+$b并不等于$b+$a
2、使用array_merge合并数组
将$b的元素加到$a的后面,如果有相同的字符串键值,覆盖$a的元素,如果是数字键值,那么直接加到$a的后面。
$a = array('x0','y0','z0','key0'=>'v0');
$b = array('x1','y1','z1','key0'=>'v1','b1','key1'=>'v2');
$c = array_merge($a,$b);
print_r($c);
结果是:
Array
(
[0] => x0
[1] => y0
[2] => z0
[key0] => v1
[3] => x1
[4] => y1
[5] => z1
[6] => b1
[key1] => v2
)
可以看到,保留了$a中的元素,但是字符串键值key0被$b的元素覆盖了,$b的元素加到了后面。如果是两个数字键值的数组合并,使用array_merge得到的是包含了两个数组的所有元素。
帮助记忆的方法:
加法是增加新的,对老的元素忽略;
merge是覆盖。相同字符串键值被覆盖,数字键值被认为是新的元素。
浙公网安备 33010602011771号