php array_udiff_assoc 计算两个数组的差集实例_php实例

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
, 详解
, array_udiff_assoc
计算两个数组
array udiff assoc、array udiff、php array udiff、array diff assoc、php array diff assoc,以便于您获取更多的相关知识。

时间: 2024-09-29 09:41:05

php array_udiff_assoc 计算两个数组的差集实例_php实例的相关文章

php array_udiff_assoc 计算两个数组的差集实例

php array_udiff() 函数用于比较两个(或更多个)数组的键名和键值,并返回差集.此比较是通过用户提供的回调函数来进行的.如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数.本文章通过实例向大家讲解array_udiff()函数的使用方法, array_udiff_assoc - 带索引检查计算数组的差集,用回调函数比较数据 基本语法: array array_udiff_assoc ( array $array1 , array $arr

php实现两个数组相加的方法_php技巧

本文实例讲述了php实现两个数组相加的方法.分享给大家供大家参考.具体如下: 实例1: <?php $arr1 = array("a"=>"朝阳区","b"=>"海淀区"); $arr2 = array("h"=>"西城区","a"=>"东城区","b"=>"丰台区");

js计算两个时间之间天数差的实例代码_javascript技巧

复制代码 代码如下: //判断是否为闰年function isLeapYear(year){if(year % 4 == 0 && ((year % 100 != 0) || (year % 400 == 0))){     return true;}return false;}//判断前后两个日期function validatePeriod(fyear,fmonth,fday,byear,bmonth,bday){if(fyear < byear){return true;}el

php中用加号与用array_merge合并数组的区别深入分析_php实例

我们首先给出两个数组 复制代码 代码如下:     <?php       $r = array(1,2,3,4,5,6);       $e = array(7,8,9,10);      ?>  下面我们用array_merge和加号来何必这两数组 复制代码 代码如下:     <?php      print_r($r+e); // 输出<span style="font-family: Simsun;font-size:16px; ">Array

深入理解PHP 数组之count 函数_php实例

count() PHP count() 函数用于计算数组中的单元数目或对象中的属性个数,返回数组的单元个数或对象中的属性个数. 语法: int count( mixed var [, int mode] )如果 var 是非数组的普通变量,则返回 1 ,对于不存在.未初始化或空数组返回 0 . 可选参数 mode 设为 COUNT_RECURSIVE(或 1),count() 将递归地对数组计数,这对计算多维数组的所有单元尤其有用,但 count() 识别不了无限递归.mode 的默认值是 0

使用PHP计算两个路径的相对路径_php技巧

复制代码 代码如下: <html>     <body>         <?php             function relativePath($aPath, $bPath) {                 $aArr = explode('/', $aPath);    //explode函数用于切分字符串,返回切分后的数组,此处用'/'切分字符串                 $bArr = explode('/', $bPath);           

php笔记之:php数组相关函数的使用_php实例

创建数组就不再说了  array()函数 提取数组可以用list(). 测试数组元素 ,可以用is_array() 接受一个参数,传进来的变量,如果变量是数组,返回true如果不是返回false. 添加和删除数组元素 数组的fifo和lifo 先解释下什么是fifo和lifo 删除元素与加入元素的顺序相同,称为先进先出,既first-in-first-out 删除元素与加入元素的顺序相反,称为后进先出,既last-in-first-out 相对应的对数组的操作 array_unshift() i

smarty模板引擎使用内建函数foreach循环取出所有数组值的方法_php实例

本文实例讲述了smarty内建函数foreach的使用方法,分享给大家供大家参考.具体如下: 显示文件:index.php: 复制代码 代码如下: <?php //创建smarty对象 require_once("./libs/Smarty.class.php"); $smarty = new Smarty(); $arr1 = array("北京","上海","广州");//索引数组 $smarty->assig

thinkphp数据查询和遍历数组实例_php实例

本文实例讲述了thinkphp数据查询和遍历数组的方法.分享给大家供大家参考.具体方法如下: 数据库可以使用DSN方法进行配置: 复制代码 代码如下: 'DB_PREFIX'=>'tp_',  //设置表前缀 'DB_DSN'=>'mysql://root:@localhost:3306/thinkphp',//使用DSN方式配置数据库信息 如果两种方式同时存在,以DSN方式为优先,还有一种简单实用模型的方式. M() 等效为 new Model(); 复制代码 代码如下: $m=M('Use