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 相关文章推荐
建立文件交换功能的脚本(三)
Oct 09 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
snoopy 强大的PHP采集类使用实例代码
Dec 09 PHP
php 日期和时间的处理-郑阿奇(续)
Jul 04 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
Jun 17 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
php命令行使用方法和命令行参数说明
Apr 08 PHP
9段PHP实用功能的代码推荐
Oct 14 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
YII框架中搜索分页jQuery写法详解
Dec 19 PHP
php传值方式和ajax的验证功能
Mar 27 PHP
PHP _construct()函数讲解
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
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php下目前为目最全的CURL中文说明
2010/08/01 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
Python定时任务sched模块用法示例
2018/07/16 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
Python unittest框架操作实例解析
2020/04/13 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
管理学院毕业生自荐信范文
2014/03/10 职场文书
2014年清明节寄语
2014/04/03 职场文书
春季防火方案
2014/05/10 职场文书
区级文明单位申报材料
2014/05/15 职场文书
市场营销策划方案
2014/06/11 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
学风建设演讲稿
2014/09/12 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
销售业务员岗位职责
2015/02/13 职场文书
党支部审查意见
2015/06/02 职场文书