PHP 数组合并相加与array_merge 的区别

在php中数组合并相加与array_merge数组合并是有一点区别的,下面小编来给各位同学介绍array_merge与数组相加合并的区别。

+:首先出现的会覆盖后出现的

array_merge:后出现的会覆盖前面出现的,但是如果是数字索引,则是叠加效果,代码如下:

  1. $array1 = Array(
  2. 0 => 111
  3. );
  4. $array2 = Array(
  5. 0 => 222,
  6. 1 => 3333
  7. );
  8. array_merge 后:
  9. Array
  10. (
  11. [0] => 111
  12. [1] => 222
  13. [2] => 3333
  14. )
  15. + 后:
  16. Array
  17. (
  18. [0] => 111
  19. [1] => 3333
  20. )

情况二:

  1. $array1 = Array(
  2. 0 => 111
  3. );
  4. $array2 = Array(
  5. 'h' => 222,
  6. 1 => 3333
  7. );

array_merge 和 + 的结果是一样:

  1. Array
  2. (
  3. [0] => 111
  4. [h] => 222
  5. [1] => 3333
  6. )

结果很明显:array_merge就是两个数组的相加,键值如果是数字的话 会重新排列 如果不的话是不会修改

而+是两个数组相加会把相同的键值的值会被前面的数组给替换,如果不一样的键值那就和array_merge一样的效果.