资讯专栏INFORMATION COLUMN

php array_udiff函数使用

james / 3214人阅读

摘要:注意键名保持不变。数据的比较是用进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。这和不同,后者使用了内部函数来比较数据。

array_udiff,在php的官网文档里是这么解释的
(PHP 5)
array_udiff — 用回调函数比较数据来计算数组的差集

说明

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

array_udiff() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保持不变。数据的比较是用 data_compare_func 进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。这和 array_diff() 不同,后者使用了内部函数来比较数据。

个人认为这个解释很模糊,第三个参数或者说匿名函数参数返回的结果会对整个函数返回的结果有什么影响?
在查过资料后做个总结:
所有的数组参数会进行比较, 比如$array1, $array2两个数组比较,筛选出位于$array1而不属于$array2中数组元素, 如果第三个参数返回的结果是0或者-1,那么返回的结果里就不会包含位于第一个数组中的元素,如果返回的是1, 则会包含位于第一个数组中的元素。
例:

$arr1 = array("cat","mouse","horse");
$arr2 = array("cat","mouse");
print_r(array_udiff($arr1,$arr2,function($a, $b){return 0;}));

此时返回的结果就会是array(),空数组,假如return 1,那么返回的就是array("cat","mouse","horse")

$arr1 = array("cat","mouse","horse");
$arr2 = array("cat","mouse");
print_r(array_udiff($arr1,$arr2,function($a, $b){return ($a==$b)?0:1;}));

这个时候就只会在两个数组不同的时候输出$arr1中的元素,这就达到了从数组$arr1中剔除与$arr2中相同的元素


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20788.html

相关文章

  • 求数组差/交集函数-php数组函数(二)

    摘要:求数组差集函数函数只检查了多维数组中的一维。自定义函数必须返回一个小于零,等于零,或大于零的整数。用自定义函数比较的值,函数参数为数组的值。 求数组差集函数 函数只检查了多维数组中的一维。可以用 array_diff($array1[0], $array2[0]) 检查更深的维度。 u:自定义函数比较,a(association):同时比较键和值。 自定义函数callable $v...

    ChristmasBoy 评论0 收藏0
  • PHP数组相关函数Demo及归纳

    摘要:源码年来都没有动手跑一跑内置的函数。这一跑才发现平时自鸣得意的那些算法是有原生实现的,顿时有一种啪啪啪被打脸的感觉。希望亡羊补牢,为时不晚吧。下面是从里摘抄的归纳对比片段,希望对你有所启发。 Demo源码 3年来都没有动手跑一跑PHP内置的Array函数。 这一跑才发现平时自鸣得意的那些算法是有原生实现的,顿时有一种啪啪啪被打脸的感觉。 希望亡羊补牢,为时不晚吧。 下面是从Demo里摘...

    shuibo 评论0 收藏0
  • 【面向对象的PHP】之模式:组合

    摘要:我们可以做一些小改进将的抛出异常代码挪入父类属于最小单位。完整代码当我们需要在某个子类,实现个性化的业务逻辑时,组合模式的缺陷之一正在显现出来简化的前提是所有的类都继承同一个基类,简化优点有时是以降低对象安全为代价。 开篇 如果你注意了目录,会知道:组合是一个新的开始。在系统代码设计的过程中,我们通过继承来组织代码,父类与子类,实质上对应了业务的整体规范与具体需求。所以,我们需要将类按...

    546669204 评论0 收藏0
  • PHP 数组函数分类和整理

    摘要:获取元素数量获取数组元素总数获取所有的键获取数组所有键组成的数组。遍历数组元素获取数组当前元素。数组指针前移一步。数组指针指向最后一个元素。其他数组操作反转数组。随机取出数组元素。对数组的所有值求和。 这几天工作之余整理和分类了PHP 中常用的数组相关的函数。如有错误和遗漏,请留言指正! 数组函数整理 创建数组函数 array array ([ mixed $... ] ):创建数组...

    LiuZh 评论0 收藏0
  • PHP扩展开发教程5 - 扩展函数的参数类型(1)

    摘要:前面两节介绍了如何用编写常用的扩展函数,扩展类。对怎么使用开发扩展应该已经很熟悉了,下面晋级学习一下关于扩展函数参数类型方面的内容。 PHP扩展是高级PHP程序员必须了解的技能之一,对于一个初入门的PHP扩展开发者,怎么才能开发一个成熟的扩展,进入PHP开发的高级领域呢?本系列开发教程将手把手带您从入门进入高级阶段。本教程系列在linux下面开发(推荐使用centos),php版本用的...

    DoINsiSt 评论0 收藏0

发表评论

0条评论

james

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<