array_merge与数组(array)相加的区别

array_merge与数组(array)相加的区别

之前每次面试 我发现面试到基础部分的时候 这个问题 出现的频率 特别高 ,
所以在这里写出来 , 加深下印象 也希望可以帮到更多的人.

例子1:

$a = ['one','two'];
$b = ['three','four','five'];
var_dump(array_merge($a,$b));
/*
array (size=5)
  0 => string 'one' (length=3)
  1 => string 'two' (length=3)
  2 => string 'three' (length=5)
  3 => string 'four' (length=4)
  4 => string 'five' (length=4)
  */
  
var_dump(array_merge($b,$a));
  /*
array (size=5)
  0 => string 'three' (length=5)
  1 => string 'four' (length=4)
  2 => string 'five' (length=4)
  3 => string 'one' (length=3)
  4 => string 'two' (length=3)
  */
var_dump($a+$b);
  /*
array (size=3)
  0 => string 'one' (length=3)
  1 => string 'two' (length=3)
  2 => string 'five' (length=4)
  */
var_dump($b+$a);
  /*
array (size=3)
  0 => string 'three' (length=5)
  1 => string 'four' (length=4)
  2 => string 'five' (length=4)
*/

例子2:

$a = ['name'=>'php','mysql'];
$b = ['DB'=>'mysql','test','name'=>'golang'];
var_dump(array_merge($a , $b));
/*
array (size=4)
  'name' => string 'golang' (length=6)
  0 => string 'mysql' (length=5)
  'DB' => string 'mysql' (length=5)
  1 => string 'test' (length=4)
*/
var_dump($a + $b );
/*
array (size=3)
  'name' => string 'php' (length=3)
  0 => string 'mysql' (length=5)
  'DB' => string 'mysql' (length=5)
*/

例子3:

$a = ['mysql','name'=>'php',3=>'html'];
$b = [1=>'test','name'=>'golang',2=>'mysqli','javascript'];
var_dump(array_merge($a , $b));
/*
array (size=6)
  0 => string 'mysql' (length=5)
  'name' => string 'golang' (length=6)
  1 => string 'html' (length=4)
  2 => string 'test' (length=4)
  3 => string 'mysqli' (length=6)
  4 => string 'javascript' (length=10)
*/
var_dump( $a + $b );
/*
array (size=5)
  0 => string 'mysql' (length=5)
  'name' => string 'php' (length=3)
  3 => string 'html' (length=4)
  1 => string 'test' (length=4)
  2 => string 'mysqli' (length=6)
*/

从以上例子可以看出:
当array_merge( a r r A , arrA, arrA,arrB) 会将$arrB数的成员 全部追加到参数arrA数组中去,
arrB将会覆盖掉arrA中的 字符类型 同键名值,其余的依次追加,
并且会将所有key值重新排列,关联数组自定义 字符类型 key值除外(参考例三)

而arrayA+arrayB时,不管是什么数组 arrayA都会将arrayB中的同键名值抛弃,其余追加至arrayA中,key不会重新排列

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值