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 相关文章推荐
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
Jun 25 PHP
Win下如何安装PHP的APC拓展
Aug 07 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
PHP比你想象的好得多
Nov 27 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
PHP生成图像验证码的方法小结(2种方法)
Jul 18 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
Nov 17 PHP
php简单计算年龄的方法(周岁与虚岁)
Dec 06 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 PHP
php生成短网址/短链接原理和用法实例分析
May 29 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对二维数组进行排序的简单实例
2013/12/19 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
python numpy中cumsum的用法详解
2019/10/17 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
美国在线印刷公司:PsPrint
2017/10/12 全球购物
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
成人大专生实习期的自我评价
2013/10/02 职场文书
车间统计员岗位职责
2014/01/05 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
swagger如何返回map字段注释
2021/07/03 Java/Android