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 08 PHP
PHP中文件上传的一个问题
Sep 04 PHP
php各种编码集详解和以及在什么情况下进行使用
Sep 11 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 PHP
CI框架中通过hook的方式实现简单的权限控制
Jan 07 PHP
php中header设置常见文件类型的content-type
Jun 23 PHP
Symfony2 session用法实例分析
Feb 04 PHP
php短信接口代码
May 13 PHP
php使用变量动态创建类的对象用法示例
Feb 06 PHP
Yii框架实现多数据库配置和操作的方法
May 25 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
Aug 01 PHP
Laravel实现ApiToken认证请求
Oct 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
php构造函数实例讲解
2013/11/13 PHP
实现PHP搜索加分页
2016/10/12 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
网页自动跳转代码收集
2009/09/27 Javascript
javascript Math.random()随机数函数
2009/11/04 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
Python 检查数组元素是否存在类似PHP isset()方法
2014/10/14 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
python异常处理try except过程解析
2020/02/03 Python
Django之腾讯云短信的实现
2020/06/12 Python
python怎么自定义捕获错误
2020/06/29 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
PHP如何去执行一个SQL语句
2016/03/05 面试题
调研汇报材料范文
2014/08/17 职场文书
2014年秘书工作总结
2014/11/25 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
个人党性锻炼总结
2015/03/05 职场文书
2015年大学生实习评语
2015/03/25 职场文书
企业党建工作总结2015
2015/05/26 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
Redis基本数据类型List常用操作命令
2022/06/01 Redis
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技