有关PHP函数:array_diff()与array_diff_assoc()的一些理解点

首先先对这两个函数做一个简单的说明:

简单地说,两者都是将通过比较之后将不同的内容进行输出。

array_diff()函数返回两个数组的差集数组。区别在于不存在任何其他参数数组中的键值;

array array_diff ( array $array1 , array $array2 [, array $... ] )

array1

要被对比的数组

array2

和这个数组进行比较

...

更多相比较的数组


而array_diff_assoc()函数也是返回两个数组的差集数组,该数组包括了所有在被比较的数组中,但是不存在任何其他参数数组中的键和值;

array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )

array1

The array to compare from

array2

An array to compare against

...

More arrays to compare against


下面对这两个函数进行一个简单的输出演示,用截图演示:

array_diff()函数:


输出结果如下:

array_diff_assoc()函数:

输出结果如下:

对于第一个函数理解很容易,但是我们发现第二个函数的输出方式有点难以理解,为什么是输出了下标为0和下标为2?

下面着重说明下第二个函数,通过调试进行一个原理的验证:

我们先做一个假设,当出现三个数组的时候,第一个数组与其他数组进行比较的时候,做了一个判断,即只有之后的数组中相同下标位置上的值都不同的时候才输出第一个数组中的值,修改下第$a3中的dog,结果输出为:

此时输出了下标为1的dog,反向验证下,修改下$a3中的horse:

经过调试之后,我们可以得出一个结论,即array_diff_assoc()函数被调用时,当被比较的数组大于1个的时候,这个时候需要相同下标上的所有值都不同才进行输出。






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值