首页 > php > 合并数组中+与array_merge的区别

合并数组中+与array_merge的区别

2011年12月17日 发表评论 阅读评论

【array_merge】
如果数组中有相同的字符串键,后面的值会覆盖前一个值。

但如果键是数字或由引号包裹的字符串,就不会覆盖前面的值,所有的数字索引部分(无论键是否相同),键以连续方式重新索引。
【+】
如遇到重复键(数字和字符串),【仅】保留前面的键值,并重新索引剩下非重复的数字索引部分。

简而言之,array_merge() 结合数组,后面的字符串键覆盖前面的;用 + 链接数组,前面的数字键覆盖后面的。

其中二者的数字键均包含,1,’1′这两种情况

 

$first = array('apple', 'boy');
$second = array('cat', 'dog');

$result = array_merge($first, $second);

echo '<pre>';
 var_dump($result);
 echo '</pre>';

//结果是:

array(4) {
 [0]=>
 string(5) "apple"
 [1]=>
 string(3) "boy"
 [2]=>
 string(3) "cat"
 [3]=>
 string(3) "dog"
 }

$first = array('apple', 'boy');
$second = array('cat', 'dog');

$result = $first + $second;

echo '<pre>';
 var_dump($result);
 echo '</pre>';

//结果是:

array(2) {
 [0]=>
 string(5) "apple"
 [1]=>
 string(3) "boy"
 }

$first = array('a' => 'apple', 'boy');
$second = array('a' => 'cat', 'dog');

$result = array_merge($first, $second);

echo '<pre>';
 var_dump($result);
 echo '</pre>';

//结果是:
 array(3) {
 ["a"]=>
 string(3) "cat"
 [0]=>
 string(3) "boy"
 [1]=>
 string(3) "dog"
 }

$first = array('a' => 'apple', 'boy');
$second = array('a' => 'cat', 'dog');

$result = $first + $second;
 //$result = array_merge($first, $second);

echo '<pre>';
 var_dump($result);
 echo '</pre>';

//结果是:
 array(2) {
 ["a"]=>
 string(5) "apple"
 [0]=>
 string(3) "boy"
 }
分类: php 标签:

您可能会对下面的文章感兴趣

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.