php array_udiff_assoc 计算两个数组的差集实例


Posted in PHP onNovember 12, 2016

php array_udiff() 函数用于比较两个(或更多个)数组的键名和键值,并返回差集。此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。本文章通过实例向大家讲解array_udiff()函数的使用方法,

array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据

基本语法:

array array_udiff_assoc ( array $array1 , array $array2 [, array $ ... ], callable $data_compare_func )
此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。 

Note: 注意本函数只检查了多维数组中的一维。当然,可以用 array_udiff_assoc($array1[0], $array2[0], "some_comparison_func"); 来检查更深的维度。

参数介绍

参数 描述
array1 必需。第一个数组。
array2 必需。第二个数组。
myfunction 必需。字符串值,定义可调用的比较函数。 在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。

返回值

array_udiff_assoc() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 与 array_udiff() 不同的是键名也用于比较。数组数据的比较是用用户提供的回调函数进行的。在此方面和 array_diff_assoc() 的行为正好相反,后者是用内部函数进行比较的。

实例

<?php
class cr {
  private $priv_member;
  function cr($val) {
    $this->priv_member = $val;
  }
  static function comp_func_cr($a, $b) {
    if ($a->priv_member === $b->priv_member) return 0;
    return ($a->priv_member > $b->priv_member) ? 1 : -1;
  }
}
$a = array(
  "0.1" => new cr(9) ,
  "0.5" => new cr(12) ,
  0 => new cr(23) ,
  1 => new cr(4) ,
  2 => new cr(-15) ,
);
$b = array(
  "0.2" => new cr(9) ,
  "0.5" => new cr(22) ,
  0 => new cr(3) ,
  1 => new cr(4) ,
  2 => new cr(-15) ,
);
$result = array_udiff_assoc($a, $b, array(
  "cr",
  "comp_func_cr"
));
print_r($result);
?>

运行结果:

Array
(
  [0.1] => cr Object
    (
      [priv_member:private] => 9
    )

  [0.5] => cr Object
    (
      [priv_member:private] => 12
    )

  [0] => cr Object
    (
      [priv_member:private] => 23
    )
)

上例中可以看到键值对 "1" => new cr(4) 同时出现在两个数组中因此不在本函数的输出中。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
深入了解php4(2)--重访过去
Oct 09 PHP
php mysql数据库操作分页类
Jun 04 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
Jan 06 PHP
php使用glob函数快速查询指定目录文件的方法
Nov 15 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
十幅图告诉你什么是PHP引用
Feb 22 PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
Laravel日志用法详解
Oct 09 PHP
Yii 2.0中场景的使用教程
Jun 02 PHP
让你的PHP,APACHE,NGINX支持大文件上传
Mar 09 PHP
PHP上传图片、删除图片简单实例
Nov 12 #PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 #PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 #PHP
thinkPHP多语言切换设置方法详解
Nov 11 #PHP
thinkPHP中钩子的两种配置调用方法详解
Nov 11 #PHP
php基于闭包实现函数的自调用(递归)实例分析
Nov 11 #PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 #PHP
You might like
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
Laravel 队列使用的实现
2019/01/08 PHP
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
详解Python中with语句的用法
2015/04/15 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
个人自我鉴定怎么写
2013/10/28 职场文书
外国语学院毕业生自荐信
2013/10/28 职场文书
诚信承诺书范文
2014/03/27 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
不同意离婚上诉状
2015/05/23 职场文书
预备党员转正意见
2015/06/01 职场文书
生活小常识广播稿
2015/08/19 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python