PHP涨姿势——那些熟悉又陌生的方法(Array篇2)

本文主要介绍了PHP中几个用于计算数组差集的函数,包括array_diff、array_diff_assoc、array_diff_key、array_diff_uassoc和array_diff_ukey。详细说明了每个函数的功能、比较方式,如是否比较键名,部分函数还可使用回调函数自定义比较规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面的废话

一、array_diff

计算数组的差集
array1要被对比的数组
array2和这个数组进行比较
…更多相比较的数组

看上去很简单,就是找我有你们没有的。我们来看一下下面的几行代码

$array1 = array(
	'first' => 1,
	'second' => 4,
	'third'=>false,
	'sp'=>NULL
);
$array2 = array('first' => '1','second' =>2);
var_dump(array_diff($array1, $array2));
/**
array(3) {
  ["second"]=>
  int(4)
  ["third"]=>
  bool(false)
  ["sp"]=>
  NULL
}
**/

输出结果如我们所料;那下面我们再加一个数组 array(false)

var_dump(array_diff($array1, $array2,array(false)));

/*
array(1) {
  ["second"]=>
  int(4)
}
*/

从输出结果可以判断,在比较中 falseNULL 被看作是相等的,对PHP来说这样并不奇怪。
如果判断的数组中是一个多维数组呢?

二、array_diff_assoc

带索引检查计算数组的差集
和 array_diff() 不同的是键名也用于比较

也就是说值不一样 或者 键不一样 那就算 是我们不一样!!

三、array_diff_key

使用键名比较计算数组的差集
本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的

也就是说只要键不一样就是是我们不一样!!

四、array_diff_uassoc

用用户提供的回调函数做索引检查来计算数组的差集
key_compare_func在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。
int callback ( mixed $a, mixed $b )

这个函数也是 值不一样 或者 键不一样 那就算 是我们不一样!!
但是他有一个特殊技能,就是在判断键值是否相同的时候,有你说了算;当然如果值不一样的话 回调实际是没什么作用的。

五、array_diff_ukey

用回调函数对键名比较计算数组的差集

也就是说只要键不一样就是是我们不一样!!但是他也有一个特殊技能,就是在判断键值是否相同的时候,有你说了算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Devin_S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值