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 相关文章推荐
php date与gmdate的获取日期的区别
Feb 08 PHP
php下正则来匹配dede模板标签的代码
Aug 21 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
php中OR与|| AND与&amp;&amp;的区别总结
Oct 26 PHP
php分页函数示例代码分享
Feb 24 PHP
thinkphp使用phpmailer发送邮件的方法
Nov 24 PHP
PHP二维数组去重实例分析
Nov 18 PHP
CI框架实现优化文件上传及多文件上传的方法
Jan 04 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
php无限级分类实现评论及回复功能
Feb 18 PHP
PHP获取真实IP及IP模拟方法解析
Nov 24 PHP
php修改word的实例方法
Nov 17 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
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
理解JavaScript中的事件
2006/09/23 Javascript
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
javascript 写类方式之四
2009/07/05 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
Python中join和split用法实例
2015/04/14 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
python生成随机图形验证码详解
2017/11/08 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
python3 flask实现文件上传功能
2020/03/20 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
python如何使用代码运行助手
2020/07/03 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
了解AppleTalk协议吗
2014/04/01 面试题
校园学雷锋活动月总结
2014/03/09 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
导游词之唐山景点
2019/12/18 职场文书