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 验证码的实现代码
Jul 17 PHP
php中检查文件或目录是否存在的代码小结
Oct 22 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
Jan 30 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
ecshop 2.72如何修改后台访问地址
Mar 03 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
ThinkPHP 模板引擎使用详解
May 07 PHP
Laravel模型间关系设置分表的方法示例
Apr 21 PHP
总结PHP中初始化空数组的最佳方法
Feb 13 PHP
laravel批量生成假数据的方法
Oct 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遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
PHP反射基础知识回顾
2020/09/10 PHP
学习ExtJS form布局
2009/10/08 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
2015/08/10 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
react redux入门示例
2018/04/19 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
Python中title()方法的使用简介
2015/05/20 Python
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
详解python中init方法和随机数方法
2019/03/13 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
解决django服务器重启端口被占用的问题
2019/07/26 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
python 穷举指定长度的密码例子
2020/04/02 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
html5 input输入实时检测以及延时优化
2018/07/18 HTML / CSS
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
建筑文秘专业个人求职信范文
2013/12/28 职场文书
高中生逃课检讨书
2014/10/10 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
交通安全学习心得体会
2016/01/18 职场文书