array_merge 和+的区别

php有2个函数常用语数组合并,他们是array_merge+.本节来讲一下两者的区别.

索引数组

$arr1 = [1 => 'one', 3 => 'three'];
$arr2 = [1 => 'new one', 6 => 'six'];
$result1 = array_merge($arr1, $arr2);
$result2 = $arr1 + $arr2;

//output
$result1:
Array
(
    [0] => one
    [1] => three
    [2] => new one
    [3] => six
)

$result2:
Array
(
    [1] => one
    [3] => three
    [6] => six
)

结论:

  • array_merge就是简单的数组追加,即使索引相同也不会出现覆盖的情况。这也注定了新数组的索引会被重写。变为0,1,2,3….
  • +的方式在遇到索引相同时,保留前者抛弃后者

关联数组

$arr3 = ['name' => '张三', 'age' => 21];
$arr4 = ['name' => '李四', 'age' => 22];
$result3 = array_merge($arr3, $arr4);
$result4 = $arr3 + $arr4;
dd($result3);
dd($result4);

//output
//result3:
Array
(
    [name] => 李四
    [age] => 22
)
//result4:
Array
(
    [name] => 张三
    [age] => 21
)

结论

  • array_merge键名相同,后者覆盖前者
  • +依旧是保留前者抛弃后者
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • PHP数组函数,摘录于PHP手册 1、array_change_key_case (PHP 4 >= 4.2.0,...
    kotlin360阅读 4,012评论 2 1
  • 一、数组定义 array() 1、索引数组 在一个变量中,存储一个或多个值。数组中的每一个元素都有一个访问ID,根...
    竹与豆阅读 3,511评论 0 0
  • 一、Array_key_exists();检查给定的键名或索引是否存在于数组中二、array_keys ()返回数...
    peng_js阅读 2,713评论 0 0
  • # 数组部分 # 1.## array_chunk($arr, $size [, $preserve_key = ...
    clothTiger阅读 4,941评论 0 1
  • 1.strlen()与mb_strlen()的作用分别是什么? strlen()和mb_strlen()都是作用于...
    落魄PHP女程序员阅读 2,806评论 0 2