如何比较两个PHP多维数组
判断两个多维数组是否相等,或有哪些元素区别。我们可以通过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 ""; print_r($color);此段代码中,我们就可以得出$color1数组相对于$color2数组有哪些不同的数组元素。
输出比较结果如下:
函数介绍:
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;如果两者相等,返回 0。
4、implode:将一个一维数组的值转化为字符串
本篇文章就是关于比较两个PHP多维数组的方法介绍,也很简单易懂,希望对需要的朋友有所帮助!
如何获取时间戳,这是PHP程序员经常遇到的问题。之前都是用的时候才去百度,所以一直没有认真去弄明白过。 今天公司程序开发需要,我负责开发一个签到小功能,由于需要获得连续签到天数,所以必须获得昨天的是否签 到的情况,然后一下子就短路了,昨天如何获取?如果只是单纯…
关注微信公众号『OOINK』
第一时间了解最新资源动态关注OO.INK不迷路~
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 下载资源需要解压密码,解压密码是什么?
2、分享目的仅供大家学习和交流,请不要用于商业用途!
3、本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
4、如有链接无法下载、失效或广告,请联系管理员处理!
5、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
OO.INK资源网 » 如何比较两个PHP多维数组