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 相关文章推荐
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
解析php中heredoc的使用方法
Jun 17 PHP
php ios推送(代码)
Jul 01 PHP
PHP导航下拉菜单的实现如此简单
Sep 22 PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 PHP
PHP return语句的另一个作用
Jul 30 PHP
PHP实现自动登入google play下载app report的方法
Sep 23 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 PHP
php+ajax无刷新上传图片实例代码
Nov 17 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
Dec 08 PHP
PHP命名空间定义与用法实例分析
Aug 14 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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
php生成图片缩略图功能示例
2017/02/22 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
如何在JavaScript中正确处理变量
2020/12/25 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python smallseg分词用法实例分析
2015/05/28 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
Python 实现简单的客户端认证
2020/07/29 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
前台文员的岗位职责
2013/11/14 职场文书
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
仓管员岗位责任制
2014/02/19 职场文书
倡议书的写法
2014/08/30 职场文书
九九重阳节标语
2014/10/07 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
2015年检验科工作总结
2015/04/27 职场文书
出生证明格式
2015/06/15 职场文书
学历证明范文
2015/06/16 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android