微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php如何比较两个数组是否相等

比较方法:1、使用“array_diff_assoc($arr1,$arr2)”语句比较两个数组的键名和键值,返回一个差集数组;2、用“差集数组==[]”语句判断差集数组是否为空数组,如果是空数组,则表示进行比较的两个数组相等,反之不相等。

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

PHP中,可以利用数组差集来判断两个数组是否相等。

  • 如果两个数组的差集为空,则这两个数组中没有不同的元素,即两个数组是相等的

  • 如果两个数组的差集不为空,则这两个数组中有不同的元素,即两个数组是不相等的

那么数组差集要怎么获取尼?可以使用array_diff_assoc()函数

  • array_diff_assoc()用于比较两个(或更多个)数组的键名和键值 ,并返回差集数组。

只有数组键名和键值都相等的两个数组,才相等。

实现步骤:

1、使用array_diff_assoc()获取数组差集

<?PHP 
header(content-type:text/html;charset=utf-8);
$arr1=array(a=>red,b=>green,c=>blue,d=>yellow);
$arr2=array(a=>red,b=>green,c=>blue);
$arr3=array(a=>red,b=>green,c=>blue);
$diff1=array_diff_assoc($arr1,$arr2);
var_dump($diff1);
$diff2=array_diff_assoc($arr2,$arr3);
var_dump($diff2);
?>

1.png

通过输出可以看出,$arr1和$arr2有差集,而$arr2和$arr3没有差集

2、判断差集数组是否为空数组

if($diff1==[]){
	echo 两数组相等<br>;
}
else{
	echo 两数组不相等<br>;
}

2.png

因为$arr1和$arr2的差集数组不为空数组,因此不相等

if($diff2==[]){
	echo 两数组相等<br>;
}
else{
	echo 两数组不相等<br>;
}

3.png

因为$arr2和$arr3为空数组,因此相等。

扩展:将代码封装一下:

<?PHP 
header(content-type:text/html;charset=utf-8);
function f($arr1,$arr2){
	$diff1=array_diff_assoc($arr1,$arr2);
	if($diff1==[]){
		echo 两数组相等<br>;
	}
	else{
		echo 两数组不相等<br>;
	}
}

$arr1=array(a=>red,b=>green,c=>blue,d=>yellow);
$arr2=array(a=>red,b=>green,c=>blue);
$arr3=array(a=>red,b=>green,c=>blue);

f($arr1,$arr2);

f($arr2,$arr3);
?>

1.png

推荐学习:《PHP教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐