【PHP】array_merge 和 +
功能
在php的世界里,array是一个天天被人玩弄的数据结构,俗称数组。
很多场景下,我们都需要强迫两个数组的数据进入到同一个数组里。
这时两种操作出现在眼前:
array_merge()+
这两种都可以合并,到底有什么区别呢。
区别
对于关联数据
array_merge()
- 同名的键,第二个数组覆盖第一个数组的值。
+
- 同名的键,保留第一个数组的值。
php > $a = ['a'=>1, 'b'=>2, 'c'=>3];
php > $b = ['c'=>4, 'd'=>5, 'e'=>6];
php > var_dump(array_merge($a, $b));
array(5) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(4)
["d"]=>
int(5)
["e"]=>
int(6)
}
php > var_dump($a + $b);
array(5) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
["d"]=>
int(5)
["e"]=>
int(6)
}
对于索引数组
array_merge()
- 相同的值,全都保留。
+
- 按索引位置做累加操作。
php > $a = [1,2,3];
php > $b = [3,4,5];
php > var_dump(array_merge($a, $b));
array(6) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(3)
[4]=>
int(4)
[5]=>
int(5)
}
php > var_dump($a + $b);
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
本文探讨了PHP中`array_merge`和`+`运算符在合并数组时的不同之处。对于关联数组,`array_merge`会保留第一个数组的键值,而`+`运算符则让第二个数组的键值覆盖第一个;对于索引数组,两者都会保留相同值,但`+`会按索引累加。
352

被折叠的 条评论
为什么被折叠?



