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中的cookie
Nov 26 PHP
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
php_xmlhttp 乱码问题解决方法
Aug 07 PHP
php学习笔记 类的声明与对象实例化
Jun 13 PHP
php对大文件进行读取操作的实现代码
Jan 23 PHP
Thinkphp中数据按分类嵌套循环实现方法
Oct 30 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 PHP
PHP levenshtein()函数用法讲解
Mar 08 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 PHP
PHP中mysqli_get_server_version()的实例用法
Feb 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
自动跳转中英文页面
2006/10/09 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
Python调用C语言的实现
2019/07/26 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
python中property和setter装饰器用法
2019/12/19 Python
python用700行代码实现http客户端
2021/01/14 Python
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
营销专业应届生求职信
2013/11/26 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
2015年度党员个人总结
2015/02/14 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
Python first-order-model实现让照片动起来
2022/06/25 Python