PHP获得数组交集与差集的方法


Posted in PHP onJune 10, 2015

本文实例讲述了PHP获得数组交集与差集的方法。分享给大家供大家参考。具体分析如下:

一、数组的交集 array_intersect()

array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下:

array array_intersect(array array1,array array2[,arrayN…])

下面这个例子将返回在$fruit1数组中出现的且在$fruit2和$fruit3中也出现的所有的水果:

<?php
$fruit1 = array("Apple","Banana","Orange");
$fruit2 = array("Pear","Apple","Grape");
$fruit3 = array("Watermelon","Orange","Apple");
$intersection = array_intersect($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [0] => Apple )
?>

只有在两个元素相等且具有相同的数据类型时,array_intersect()函数才会认为它们是相同的。

关联数组的交集 array_intersect_assoc()

函数array_intersect_assoc()与array_intersect()基本相同,只不过他在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才返回到结果数组中。

形式如下:

array array_intersect_assoc(array array1,array array2[,arrayN…])

下面的例子返回了出现在$fruit1数组中,也同时出现在$fruit2与$fruit3中的所有键/值对:

<?php
$fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");
$fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");
$fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");
$intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [red] => Apple )
?>

二、数组的差集 array_diff()

函数array_diff()返回出现在第一个数组中但其他输入数组中没有的值。这个功能与array_intersect()相反。

array array_diff(array array1,array array2[,arrayN…])

实例如下:

<?php
$fruit1 = array("Apple","Banana","Orange");
$fruit2 = array("Pear","Apple","Grape");
$fruit3 = array("Watermelon","Orange","Apple");
$intersection = array_diff($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [1] => Banana )
?>

关联数组的差集 array_diff_assoc()

函数array_diff_assoc()与array_diff()基本相同,只是它在比较时还考虑了数组的键。因此,只在第一个数组中出现而不再其他输入数组中出现的键/值对才会返回到结果数组中。其形式如下:

array array_diff_assoc(array array1,array array2[,arrayN…])

下面的例子只返回了[yellow] => Banana,因为这个特殊的键/值对出现在$fruit1中,而在$fruit2和$fruit3中都不存在。

<?php
$fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");
$fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");
$fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");
$intersection = array_diff_assoc($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [yellow] => Banana )
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
改变Apache端口等配置修改方法
Jun 05 PHP
PHP header函数分析详解
Aug 06 PHP
php数组一对一替换实现代码
Aug 31 PHP
php中自定义函数dump查看数组信息类似var_dump
Jan 27 PHP
分享常见的几种页面静态化的方法
Jan 08 PHP
实例讲解php数据访问
May 09 PHP
thinkphp框架下404页面设置 仅三步
May 14 PHP
PHP读取XML格式文件的方法总结
Feb 27 PHP
利用ajax和PHP实现简单的流程管理
Mar 23 PHP
php中文乱码问题的终极解决方案汇总
Aug 01 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
PHP 实现链式操作
Mar 09 PHP
php发送html格式文本邮件的方法
Jun 10 #PHP
php简单实现发送带附件的邮件
Jun 10 #PHP
php动态变量定义及使用
Jun 10 #PHP
php中动态变量用法实例
Jun 10 #PHP
PHP获取文件行数的方法
Jun 10 #PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 #PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 #PHP
You might like
配置PHP使之能同时支持GIF和JPEG
2006/10/09 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
详解WordPress中给链接添加查询字符串的方法
2015/12/18 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
javascript自然分类法算法实现代码
2013/10/11 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
wxpython 学习笔记 第一天
2009/03/16 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
vue常用指令代码实例总结
2020/03/16 Python
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
2014学雷锋活动总结
2014/03/09 职场文书
火灾现场处置方案
2014/05/28 职场文书
顶岗实习协议书
2015/01/29 职场文书
社区端午节活动总结
2015/02/11 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫