• 技术文章 >每日编程 >PHP知识

    如何比较两个PHP多维数组

    藏色散人藏色散人2019-02-01 17:31:59原创12279


    判断两个多维数组是否相等,或有哪些元素区别。我们可以通过PHP中array_udiff()函数和create_function()方法、strcmp ()等函数来实现比较。

    下面我们就结合具体的代码示例,给大家介绍比较两个二维数组的方法。

    代码示例如下:

    <?php
    
    //多维数组比较
    $color1 = array(array('Red',80),array('Green',70),array('white',60));
    $color2 = array(array('Green',70),array('Black',95));
    
    $color = array_udiff($color1,$color2,create_function(
    '$a,$b','return strcmp(implode("",$a),implode("",$b));')
    );
    
    echo "<pre>";
    
    print_r($color);

    此段代码中,我们就可以得出$color1数组相对于$color2数组有哪些不同的数组元素。

    输出比较结果如下:

    ff44dfd3ad9a71ec1976a4de9a645c9.png

    函数介绍:

    1、array_udiff : 用回调函数比较数据来计算数组的差集

    array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array

    使用回调函数比较数据,计算数组的不同之处。和 array_diff() 不同的是,前者使用内置函数进行数据比较。

    参数array1表示第一个数组。array2第二个数组。value_compare_func回调对照函数。

    在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。

    callback ( mixed $a, mixed $b ) : int

    返回值,返回 array1 里没有出现在其他参数里的所有值。

    2、create_function:创建一个匿名函数

    create_function ( string $args , string $code ): string

    根据传递的参数创建匿名函数,并为其返回唯一名称。

    通常这些参数将作为单引号分隔的字符串传递。使用单引号字符串的原因是为了保护变量名称不被解析,否则,如果使用双引号,则需要转义变量名称,例如\ $ avar。

    args表示函数参数。code表示功能代码。

    返回值是以字符串或FALSE错误形式返回唯一函数名称。

    3、strcmp :二进制安全字符串比较

    strcmp ( string $str1 , string $str2 ) : int

    注意该比较区分大小写。

    参数str1表示第一个字符串。str2表示第二个字符串。

    返回值是如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。

    4、implode:将一个一维数组的值转化为字符串

    本篇文章就是关于比较两个PHP多维数组的方法介绍,也很简单易懂,希望对需要的朋友有所帮助!


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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP怎么按数组值进行升序降序排序 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • PHP多维数组转一维数组的简单实现方法_php技巧• PHP多维数组遍历方法(2种实现方法)_php技巧• 迅速确定php多维数组的深度的方法_php技巧• array_multisort实现PHP多维数组排序示例讲解_php技巧• php多维数组转一维数组
    1/1

    PHP中文网