php 数组 merge,PHP合并数组+与array_merge的区别

PHP中合并两个数组可以使用+或者array_merge,但这两个还是有区别的,清楚的了解这两中处理方法的区别对项目的快速开发来说还是非常有必要的。

主要区别是当两个或者多个数组中如果出现相同键名,需要注意以下两点:

首先需要说明一下php里面数组按键名大约可以分为字符串(关联数组)或者数字(数值数组),这里就不讨论多维数组了。

(1)键名为数字(数值数组)时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)。

(2)键名为字符(关联数组)时,+仍然把最先出现的值作为最终结果返回,把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值。

下面通过几个具体的例子进行说明:

m:Array (

[0] => a

[1] => b

)

n:Array (

[0] => c

[1] => d

)

m+n 结果为 : Array (

[0] => a

[1] => b

)

array_merge(m,n)结果为 : Array (

[0] => a

[1] => b

[2] => c

[3] => d

)

m:Array (

[1] => a

[2] => b

)

n:Array (

[2] => c

[3] => d

)

m+n结果为 : Array (

[1] => a

[2] => b

[3] => d

)

array_merge(m,n)结果为 : Array (

[0] => a

[1] => b

[2] => c

[3] => d

)

m:Array (

[a] => a

[b] => b

)

n:Array (

[b] => c

[d] => d

)

m+n结果为 : Array (

[a] => a

[b] => b

[d] => d

)

array_merge(m,n)结果为 : Array (

[a] => a

[b] => c

[d] => d

)

注意:array_merge 在任何情况下都会重新生成key

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值