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

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() 的行为正好相反,后者是用内部函数进行比较的。

实例

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) 同时出现在两个数组中因此不在本函数的输出中。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【百度地图API】发布静态图API啦!只需一个网址,即可展示定制百度地图!

【百度地图API】发布静态图API啦!只需一个网址,即可展示定制百度地图! 原文:【百度地图API】发布静态图API啦!只需一个网址,即可展示定制百度地图!摘要: 百度地图静态图API!您无须执…

脚本在流程中的性能影响

我们经常看到人们出于各种目的而使用脚本(例如,在服务任务,执行侦听器等中)。 使用脚本和Java逻辑通常很有意义: 它不需要打包到jar中并放在classpath上 它使流程定义更易于理解:无需查看其他文件 逻辑是…

php 弹出变量,php取变量出现Notice: Undefined variable 的解决方法

Notice: Undefined variable: email in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9Notice: Undefined variable: subject in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9Notice: Undefined variable: comment in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9........本来php是不需要定义变量的&am…

PowerDesigner使用教程

原文:http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html PowerDesigner是一款功能非常强大的建模工具软件,足以与Rose比肩,同样是当今最著名的建模软件之一。Rose是专攻UML对象模型的建模工具,之后才向数据库建模…

mac os java_适用于Mac OS X的官方Java 7 –状态

mac os java希望到目前为止,每个人都知道苹果公司去年加入了OpenJDK项目。 那是什么意思? 苹果将​​把用于私有Mac Java构建的代码作为GPL代码贡献给OpenJDK Oracle将接管Java的Mac端口 随着时间的流逝,Mac平台将成为Java世界中完全一流的…

php 鼠标点击图片放大,鼠标移入放大图片预览效果实现

商城项目中,有鼠标移入图片放大的功能,研究一下实现Image zoombody {display: flex;justify-content: center;align-items: center;min-height: 100vh;}#image {width: 300px;height: 300px;background-color: #000;background-image: url(https://place…

红帽峰会2015所需的JBoss BPM内容指南

明年再见? 今年在Red Hat Summit上,我们在JBoss BRMS和JBoss BPM Suite演讲中获得了很多乐趣。 在DevNation周围也有一些社区会议,重点介绍了使我们的产品成为可能的项目。 您可以在他们的博客上找到此演讲的概述,并在其中提供…

设计模式 之 享元

享元模式(Flyweight) 运用共享技术有效地支持大量细粒度的对象。 还记得那年夏天一起在作文本上玩过的五子棋吗?五子棋是一种两人对弈的纯策略型棋类游戏,它起源于中国古代的传统黑白棋种之中的一个,不…

php制作简单的用户登陆,如何用php代码实现简单的用户登陆以及登陆验证功能

本文主要简单讲述了如何使用php实现简单的用户登陆以及登陆验证效果。1、首先实现通过Session实现用户的登录那么什么是session呢?session被译为会话,它主要是为了在一定访问期间在不同页面之间间传输数据,用来解决http协议无状态。session在…

纪事日记–可自定义的数据存储

总览 使任何数据结构或算法尽可能快的方法是使代码完全执行您想要的操作,而无需执行其他操作。 建立一个可以做任何人想做的每件事的数据存储的问题是,它做得不好。 自定义数据存储在性能方面可以实现什么? 您可以支持; 大约75纳…

php vprintf,vprintf - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

格式-指向以空字符结尾的字符串的指针,指定如何解释数据。格式字符串由普通的多字节字符(%除外)组成,它们被原样复制到输出流和转换规范中。每个转换规范具有以下格式:介绍%字符(可选)一个或多个标志,用于修…

Quick cocos2dx-Lua(V3.3R1)学习笔记(十)-----搭建安卓打包环境,用官方示例anysdk生成apk运行...

话说我这一篇就写搭建打包安卓环境,是不是有点过早了(其实我主要是怕以后重装系统,忘了怎么搭建了),但是迟早要面对的痛苦,一直延后也不是办法,对吧。 在官方文档中,对于打包安卓apk…

ejb运行程序_EJB程序化查找

ejb运行程序在上一篇文章中,我们了解了EJB 引用和EJB 注入 。 尽管EJB注入是一种强大的容器工具,可以简化模块化应用程序的开发,但有时还是希望执行程序化EJB查找。 例如,让我们假设一组不同的EJB实现由公共业务接口定义的公共策略…

php实现返回顶部,返回顶部js

返回顶部jsfunction goTopEx(){var objdocument.getElementById(“goTopBtn”);function getScrollTop(){return (document.documentElement.scrollTopdocument.body.scrollTop);}function setScrollTop(value){if(document.documentElement && document.documentEleme…

中国大学MOOC-数据结构基础习题集、06-2、旅游规划

题目链接:http://www.patest.cn/contests/mooc-ds/06-2 题目分析:陈姥姥说,这是Dijstra算法的一道题。题目是中文的,这里就不再啰嗦了。有一点提示一下,咱们平时用的Dijistra算法,是用来求最短路径的。这道…

我们正在下注:这个注解很快就会出现在JDK中

Yahor最近提出的Stack Overflow问题引起了我的兴趣: 如何在Java 8编译时确保方法签名“实现”功能接口 。 这是一个很好的问题。 让我们假设以下名义类型: FunctionalInterface interface LongHasher {int hash(long x); }该类型强加了清晰的合同。 实现…

java解码p7b证书文件,通过OpenSSL解码X509证书文件

在Windows平台下,如果要解析一个X509证书文件,最直接的办法是使用微软的CryptoAPI。但是在非Windows平台下,就只能使用强大的开源跨平台库OpenSSL了。一个X509证书通过OpenSSL解码之后,得到一个X509类型的结构体指针。通过该结构体…

php 网页手册模板,网站表单模板

前端界面默认网站表单模板介绍发布:/template/pc/default/home/form_post.html列表:/template/pc/default/home/form_list.html查看:/template/pc/default/home/form_show.html自定义网站表单模板介绍发布:/template/pc/default/h…

iOS安全攻防(三):使用Reveal分析他人app

使用Reveal分析他人app准备工作1)已越狱的设备,而且已安装了OpenSSH,MobileSubstrate等有用工具(Cydia源里安装)2)本地已安装了Reveal操作步骤1)拷贝framework和dylib到越狱机scp -r /Applications/Reveal.app/Contents/SharedSup…

orm框架选型问题_ORM问题

orm框架选型问题在过去的几年中,像Hibernate这样的对象关系映射工具已经帮助开发人员在处理关系数据库方面获得了巨大的生产力增长。 ORM使开发人员可以专注于应用程序逻辑,并避免为诸如插入或查询之类的简单任务编写大量样板SQL。 但是,充分…