• 技术文章 >后端开发 >PHP问题

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

    青灯夜游青灯夜游2022-04-29 20:33:08原创344

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

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

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

    那么数组差集要怎么获取尼?可以使用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视频教程

    以上就是php如何比较两个数组是否相等的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php数组 php
    上一篇:php数组怎么求平均值 下一篇:php怎么修改数组中的内容
    Web大前端开发直播班

    相关文章推荐

    • php怎么去除头尾双引号• php怎么获取数组中的几条数据• php中只比较值的数组交集函数是什么• php中数组键必须为数字吗• php怎么去重数组并求和• php怎么删除数组第n个元素
    1/1

    PHP中文网