array+array与array_merge()的区别

袁志蒙 次浏览

摘要:在PHP中可以使用array_merge函数和两个数组相加array+array的方式进行数组合并,但两者效果并不相同,下面为大家介绍两者具体的使用区别...

例1:

$array1 = array('a'=>'PHP','b'=>'MYSQL','c'=>'Linux',0=>'Apache');
$array2 = array('a'=>'HTML','c'=>'Windows',0=>'Nginx',1=>'YzmCMS');

$a = $array1+$array2;
$b = array_merge($array1, $array2);

var_dump($a);
var_dump($b);

运行结果:

array(5) {
  ["a"]=>
  string(3) "PHP"
  ["b"]=>
  string(5) "MYSQL"
  ["c"]=>
  string(5) "Linux"
  [0]=>
  string(6) "Apache"
  [1]=>
  string(6) "YzmCMS"
}
array(6) {
  ["a"]=>
  string(4) "HTML"
  ["b"]=>
  string(5) "MYSQL"
  ["c"]=>
  string(7) "Windows"
  [0]=>
  string(6) "Apache"
  [1]=>
  string(5) "Nginx"
  [2]=>
  string(6) "YzmCMS"
}

例2:

$array1 = array();
$array2 = array(1=>'Nginx',3=>'YzmCMS');

$a = $array1+$array2;
$b = array_merge($array1, $array2);

var_dump($a);
var_dump($b);

运行结果:

array(2) {
  [1]=>
  string(5) "Nginx"
  [3]=>
  string(6) "YzmCMS"
}
array(2) {
  [0]=>
  string(5) "Nginx"
  [1]=>
  string(6) "YzmCMS"
}

总结:

array_merge()函数用于将一个或者多个数组的单元合并起来,返回结果为数组。

①如果合并的数组中有相同的字符串键名,则后面的值覆盖前面的值,键名不变

②如果合并的数组中有相同的数字键名,则后面的值不覆盖前面的值,而是依次附加到后面

③如果只有一个数组,并且该数组是数字索引的,则键名会以连续方式重新索引。


array+array是数组的联合运算。

①如果合并的数组中有相同的字符串键名,则取最先出现的值而把后面拥有相同键名的那些值“抛弃”

②如果合并的数组中有相同的数字键名,则取最先出现的值而把后面拥有相同键名的那些值“抛弃”

③如果只有一个数组,并且该数组是数字索引的,则键名不会重新索引,而是保持原来的索引顺序。


随机新闻

表情

共1条评论