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调用Oracle存储过程
Oct 09 PHP
用libtemplate实现静态网页生成
Oct 09 PHP
php的字符串用法小结
Jun 08 PHP
php header Content-Type类型小结
Jul 03 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
php bootstrap实现简单登录
Mar 08 PHP
PHP记录页面停留时间的方法
Mar 30 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
PHP Swoole异步Redis客户端实现方法示例
Oct 24 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 api函数实现数组的交换排序示例
2014/04/13 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
jquery显示和隐藏div特效实例
2013/02/27 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
2019/12/20 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
python中readline判断文件读取结束的方法
2014/11/08 Python
Python标准库os.path包、glob包使用实例
2014/11/25 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
python字符类型的一些方法小结
2016/05/16 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
Python中断多重循环的思路总结
2019/10/04 Python
python 错误处理 assert详解
2020/04/20 Python
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
银行职员思想汇报
2013/12/31 职场文书
文艺晚会主持词
2014/03/24 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
2015年超市工作总结
2015/04/09 职场文书