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+DBM的同学录程序(2)
Oct 09 PHP
PHP 批量删除 sql语句
Jun 05 PHP
PHP 自定义错误处理函数trigger_error()
Mar 26 PHP
php strrpos()与strripos()函数
Aug 31 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
Aug 21 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
利用php获得flv视频长度的实例代码
Oct 26 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
服务器端解压缩zip的脚本
2006/12/22 PHP
PHP 上传文件大小限制
2009/07/05 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
IE6 fixed的完美解决方案
2011/03/31 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
python 实现A*算法的示例代码
2018/08/13 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
《雷雨》教学反思
2014/02/20 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
手术室护士个人总结
2015/02/13 职场文书