剖析php数组对比函数(避坑篇)

php比对两个数组函数

摘要:两个数组的比对在日常编码过程中是最常用到的,稍微复杂点的业务需求都需要用到

array_diff_assoc
功能:函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键和值。

>>> $arr1=[1,2,3,4];
=> [
     1,
     2,
     3,
     4,
   ]
>>> $arr2=[3,4,5,6];
=> [
     3,
     4,
     5,
     6,
   ]
>>> array_diff_assoc($arr1,$arr2);
=> [
     1,
     2,
     3,
     4,
   ]

可以看到当键值一样,键名不一样的时候,也不会匹配到。

>>> $arr1=[1,2,3,4];
=> [
     1,
     2,
     3,
     4,
   ]
>>> $arr2=[5,6,3,4];
=> [
     5,
     6,
     3,
     4,
   ]
>>> array_diff_assoc($arr1,$arr2);
=> [
     1,
     2,
   ]

只有当键名和键值都一样的时候才会被排除,是求第一个数组和后面数组的差值。

array_intersect
功能:函数用于比较两个(或更多个)数组的值,并返回交集。

>>> $arr1;
=> [
     1,
     2,
     3,
     4,
   ]
>>> $arr2;
=> [
     5,
     6,
     3,
     4,
   ]
>>> array_intersect($arr1,$arr2);
=> [
     2 => 3,
     3 => 4,
   ]

>>> $arr1;
=> [
     1,
     2,
     3,
     4,
   ]
>>> $arr2 = [3,4,5,6];
=> [
     3,
     4,
     5,
     6,
   ]
>>> array_intersect($arr1,$arr2);
=> [
     2 => 3,
     3 => 4,
   ]
>>> 

可以看到会返回第一个数组和第二个数组值相等的数组,保留第一个数组的键值。

array_diff

功能: 函数用于比较两个(或更多个)数组的值,并返回差集。

=> [
     "one" => "one",
     "two" => "two",
     "three" => "three",
   ]
>>> $arr2;
=> [
     "one1" => "one",
     "two1" => "two",
     "four" => "four",
     "five" => "five",
   ]
>>> array_diff($arr1,$arr2);
=> [
     "three" => "three",
   ]
>>> 

这个函数和array_diff_assoc功能相似,但array_diff只比较值,键不同也不影响。也是求第一个数组与后面数组的差值。

拓展:
如果要求两个集合是否不相同,可以互相求下差值。

array_diff($arr1,$arr2)&&array_diff($arr2,$arr1)

如果对你有帮助,看完别忘了转发,收藏~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值