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 相关文章推荐
在apache下限制每个虚拟主机的并发数!!!!
Oct 09 PHP
php数组函数序列之in_array() - 查找数组中是否存在指定值
Nov 07 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
Oct 23 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
php源码之将图片转化为data/base64数据流实例详解
Nov 27 PHP
php使用parse_str实现查询字符串解析到变量中的方法
Feb 17 PHP
php smtp实现发送邮件功能
Jun 22 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
YII框架关联查询操作示例
Apr 29 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 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设计模式小结
2013/02/15 PHP
php实现的验证码文件类实例
2015/06/18 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
2015/05/09 Javascript
百度地图api如何使用
2015/08/03 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
Django框架多表查询实例分析
2018/07/04 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
python实现简单的文字识别
2018/11/27 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
Python列表的切片实例讲解
2019/08/20 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
会计电算化专业毕业生推荐信
2013/12/24 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
师德承诺书
2015/01/20 职场文书
公务员年终个人总结
2015/02/12 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
MySQL中varchar和char类型的区别
2021/11/17 MySQL