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 相关文章推荐
自动分页的不完整解决方案
Jan 12 PHP
Fatal error: Call to undefined function curl_init()解决方法
Apr 09 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
Oct 19 PHP
fleaphp常用方法分页之Pager使用方法
Apr 23 PHP
如何用php生成扭曲及旋转的验证码图片
Jun 07 PHP
PHP删除数组中空值的方法介绍
Apr 14 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
PHP生成和获取XML格式数据的方法
Mar 04 PHP
PHP中大括号'{}'用法实例总结
Feb 08 PHP
PHP压缩图片功能的介绍
Mar 21 PHP
php进行md5加密简单实例方法
Sep 19 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 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
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
网站当前的在线人数
2006/10/09 PHP
php5.3 废弃函数小结
2010/05/16 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
浅析php创建者模式
2014/11/25 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
微信小程序实现美团菜单
2018/06/06 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
初步剖析C语言编程中的结构体
2016/01/16 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
python判断设备是否联网的方法
2018/06/29 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
20岁生日感言
2014/01/13 职场文书
java executor包参数处理功能 
2022/02/15 Java/Android