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 相关文章推荐
模板引擎正则表达式调试小技巧
Jul 20 PHP
php缓冲 output_buffering的使用详解
Jun 13 PHP
深入解析PHP内存管理之谁动了我的内存
Jun 20 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
php实现的CSS更新类实例
Sep 22 PHP
php生成随机颜色方法汇总
Dec 03 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
Mar 22 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
PHP中Array相关函数简介
Jul 03 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
PHP命令空间namespace及use的用法小结
Nov 27 PHP
laravel框架中视图的基本使用方法分析
Nov 23 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 URL路由类实例
2013/11/12 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
JQquery的一些使用心得分享
2012/08/01 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
NodeJS整合银联网关支付(DEMO)
2016/11/09 NodeJs
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
vue跨域解决方法
2017/10/15 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
Python rstrip()方法实例详解
2018/11/11 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
计算机专业学生的自我评价
2013/12/15 职场文书
美术教师岗位职责
2014/03/18 职场文书
青春励志演讲稿
2014/04/29 职场文书
市场营销工作计划书
2014/05/06 职场文书
加油口号大全
2014/06/13 职场文书
综艺节目策划方案
2014/06/13 职场文书