先来看看array_merge的手册说明,总结一下有四点(1):合并那些键名是相同字符串的,注意是字符串的,而且这个字符串不能是纯数字,‘2’,‘1’不能算在此列;(2):相同数字键名的,不会合并,而是附加到后面;(3):后面数组的值覆盖后面的;(4):索引会进行重建;
而操作+号就不一样了,显得有些简单粗暴,总结一下有(1):合并相同键名的值,键名不论是字符串还是数字,只要相同就合并;(2):前面的值覆盖后面的饿;(3):不会重建索引。
借用一下手册上面的例子:
<?php
$x1 = array (
'1' => 'Value 1',
'2' => 'Value 2',
);
$x2 = array (
'2' => 'Value 3',
'4' => 'Value 4',
);
$x3 = array_merge( $x1, $x2 );
echo '<pre>array_merge: '. print_r($x3, true ) .'</pre>';
$x3 = $x1 + $x2;
echo '<pre>operator +: '. print_r($x3, true ) .'</pre>';
输出结果如下
array_merge: Array
(
[0] => Value 1
[1] => Value 2
[2] => Value 3
[3] => Value 4
)
operator +: Array
(
[1] => Value 1
[2] => Value 2
[4] => Value 4
)
总结一下,+或许和我们普通理解的融合更切合一些,而array_merge考虑的就比较多一些,使用的时候要多多注意一些,下面就用下面这张图做结尾了
本文探讨了PHP中的array_merge函数与+操作符在合并数组时的不同行为。array_merge会合并字符串键名的数组,数字键名不合并且后面数组的值会覆盖前面的。而+操作符则会合并所有相同键名的值,前面的值覆盖后面的,且不重建索引。通过示例代码和输出结果,展示了两者在实际应用中的差异。
346

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



