php中数组合并array_merge和+的区别
2017-03-06 17:21
946 查看
PHP中array_merge函数和+操作符都可以实现数组合并的功能,但是两者具有一些差异点,如果在工作中没有很好的理解这一点会造成一些困惑。
array_merge是php的函数,而+是运算操作符。两者都完成数组的合并,如果不搞清楚它们之间的不同,在项目中会遇到很多麻烦。下面整理一下它们的差异点:
array_merge和+都是将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
1.如果数组的键包含字符串键名时
采用array_merge时该键名后面的值将覆盖前一个值,采用+时会舍弃掉后一个值而保留前面的值。
2.如果数组的键包含数字键名时
采用array_merge时后面的值不会覆盖前一个值,而是附加到后面,如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。采用+时后面的相同键名的值会被舍弃掉。
以下的例子可以加强理解下:
array_merge的例子:
<?php
$a = array('one'=>'a',
'two'=>'b');
$b = array('one'=>'c',
'four'=>'d');
$c = array(3=>'m', 7=>'n');
$d = array(3=>'o', 23=>'p');
var_dump(array_merge($a,$b));
var_dump(array_merge($c,$d));
var_dump(array_merge($a,$c));
?>
输出:
array(3) {
["one"]=>
string(1) "c"
["two"]=>
string(1) "b"
["four"]=>
string(1) "d"
}
array(4) {
[0]=>
string(1) "m"
[1]=>
string(1) "n"
[2]=>
string(1) "o"
[3]=>
string(1) "p"
}
array(4) {
["one"]=>
string(1) "a"
["two"]=>
string(1) "b"
[0]=>
string(1) "m"
[1]=>
string(1) "n"
}
+的例子:
<?php
$a = array('one'=>'a',
'two'=>'b');
$b = array('one'=>'c',
'four'=>'d');
$c = array(3=>'m', 7=>'n');
$d = array(3=>'o', 23=>'p');
var_dump($a+$b);
var_dump($c+$d);
var_dump($a+$c);
?>
输出:
array(3) {
["one"]=>
string(1) "a"
["two"]=>
string(1) "b"
["four"]=>
string(1) "d"
}
array(3) {
[3]=>
string(1) "m"
[7]=>
string(1) "n"
[23]=>
string(1) "p"
}
array(4) {
["one"]=>
string(1) "a"
["two"]=>
string(1) "b"
[3]=>
string(1) "m"
[7]=>
string(1) "n"
array_merge是php的函数,而+是运算操作符。两者都完成数组的合并,如果不搞清楚它们之间的不同,在项目中会遇到很多麻烦。下面整理一下它们的差异点:
array_merge和+都是将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
1.如果数组的键包含字符串键名时
采用array_merge时该键名后面的值将覆盖前一个值,采用+时会舍弃掉后一个值而保留前面的值。
2.如果数组的键包含数字键名时
采用array_merge时后面的值不会覆盖前一个值,而是附加到后面,如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。采用+时后面的相同键名的值会被舍弃掉。
以下的例子可以加强理解下:
array_merge的例子:
<?php
$a = array('one'=>'a',
'two'=>'b');
$b = array('one'=>'c',
'four'=>'d');
$c = array(3=>'m', 7=>'n');
$d = array(3=>'o', 23=>'p');
var_dump(array_merge($a,$b));
var_dump(array_merge($c,$d));
var_dump(array_merge($a,$c));
?>
输出:
array(3) {
["one"]=>
string(1) "c"
["two"]=>
string(1) "b"
["four"]=>
string(1) "d"
}
array(4) {
[0]=>
string(1) "m"
[1]=>
string(1) "n"
[2]=>
string(1) "o"
[3]=>
string(1) "p"
}
array(4) {
["one"]=>
string(1) "a"
["two"]=>
string(1) "b"
[0]=>
string(1) "m"
[1]=>
string(1) "n"
}
+的例子:
<?php
$a = array('one'=>'a',
'two'=>'b');
$b = array('one'=>'c',
'four'=>'d');
$c = array(3=>'m', 7=>'n');
$d = array(3=>'o', 23=>'p');
var_dump($a+$b);
var_dump($c+$d);
var_dump($a+$c);
?>
输出:
array(3) {
["one"]=>
string(1) "a"
["two"]=>
string(1) "b"
["four"]=>
string(1) "d"
}
array(3) {
[3]=>
string(1) "m"
[7]=>
string(1) "n"
[23]=>
string(1) "p"
}
array(4) {
["one"]=>
string(1) "a"
["two"]=>
string(1) "b"
[3]=>
string(1) "m"
[7]=>
string(1) "n"
相关文章推荐
- PHP合并数组+与array_merge的区别分析
- PHP数组合并+与array_merge的区别分析
- PHP合并数组+与array_merge的区别分析
- php数组合并用加号和用array_merge()的区别
- PHP数组合并+与array_merge的区别分析 & 对多个数组合并去重技巧
- php合并数组array_merge和[+]号的区别
- PHP合并数组+与array_merge的区别分析
- PHP数组合并+与array_merge的区别分析 & 对多个数组合并去重技巧
- php用加号和用array_merge合并数组的区别
- PHP合并数组+与array_merge的区别分析
- PHP中两个数组合并可以使用+或者array_merge 区别
- PHP合并数组+与array_merge的区别
- PHP合并数组+与array_merge的区别分析
- php数组合并用加号和用array_merge()的区别
- PHP数组合并:[“+”运算符]、[array_merge]、[array_merge_recursive]区别
- PHP数组合并:[“+”运算符]、[array_merge]、[array_merge_recursive]区别
- PHP合并数组+与array_merge的区别
- php中数组合并array_merge和+的区别
- PHP合并数组+与array_merge的区别
- php 合并数组array_merge与+ 的区别