合并数组中+与array_merge的区别
【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"
}
转载请注明来源:Way-《合并数组中+与array_merge的区别》
分类: php