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编写PDF文档生成器
Oct 09 PHP
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
php中防止SQL注入的最佳解决方法
Apr 25 PHP
php生成图形(Libchart)实例
Nov 06 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
Aug 14 PHP
19个Android常用工具类汇总
Dec 30 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
Zend Framework教程之Zend_Config_Ini用法分析
Mar 23 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
laravel中的fillable和guarded属性详解
Oct 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基础知识:控制结构
2006/12/13 PHP
php 生成WML页面方法详解
2009/08/09 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
php计算年龄精准到年月日
2015/11/17 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
理解JavaScript的prototype属性
2012/02/11 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
DOM 高级编程
2015/05/06 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
elementUI table表格动态合并的示例代码
2019/05/15 Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
2019/05/24 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
生物制药毕业生自荐信
2013/10/16 职场文书
策划主管的工作职责
2013/11/24 职场文书
工地安全检查制度
2014/02/04 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
观看信仰心得体会
2014/09/04 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
护士求职简历自我评价
2015/03/10 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
《植树问题》教学反思
2016/03/03 职场文书
七年级语文教学反思
2016/03/03 职场文书
Python自动化之批量处理工作簿和工作表
2021/06/03 Python