yii2的ArrayHelper::merge

$arr1 = [
	'name'   => 'terry',
	'age'  =>  15,
	'friend'=> [
		'zhangsan','lisi'
	],
	'work' =>[
		'aa'  => 11,
		'bb'  => ['aa'=>'aa','aa2'=>'aa2'],
        'cc'  => ['66','bb'],
        'dd'  => ['dd','dd2']
	],
	'time'=>1989,
];
$arr2 = [
	'name'   => 'water',
	'age'  =>  22,
	'friend'=> [
		'zhangsan','wangwu'
	],
	'work' =>[
		'aa'  => 22,
		'bb'  => ['aa'=>'aaaa','aa3'=>'aa3'],
		'cc'  => ['77','bb'],
	],
];

ArrayHelper::merge($arr1,$arr2);
//结果
[
  'name' => 'water',
  'age' => 22,
  'friend' => ['zhangsan','lisi','zhangsan','wangwu'],//合并
  'work' => [
      'aa' => 22,
      'bb' => ['aa' => 'aaaa','aa2' => 'aa2','aa3' => 'aa3'],//覆盖
      'cc' => ['66','bb','77','bb'],//合并
      'dd' => ['dd','dd2'],
  ],
  'time' => 1989,
]

可以看到这个数组的作用:

1.如果key是数字,那么value就会进行数组合并,如果值相同,不会覆盖,会出现两个相同值的数组元素,
譬如[1,2]和[2,3]通过merge函数合并的结果为[1,2,2,3].

2.如果数组的key不是数字,则value会被覆盖掉,
譬如[‘aa’ => ‘xxx’]和[‘aa’=>’yy’] merge函数后的结果为[‘aa’=>’yy’].


因此在使用这个方法的时候,要想key覆盖,key一定要用字符串.

array_merge:key不是数字则完全覆盖,是数字则合并


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值