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输出控制功能在简繁体转换中的应用
Oct 09 PHP
PHP调用Twitter的RSS的实现代码
Mar 10 PHP
php与paypal整合方法
Nov 28 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
Jun 26 PHP
个人写的PHP验证码生成类分享
Aug 21 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP实现简单实用的分页类代码
Apr 08 PHP
PHP 实现 JSON 数据的编码和解码操作详解
Apr 22 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 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验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
不错的新闻标题颜色效果
2006/12/10 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
express的中间件basicAuth详解
2014/12/04 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
JS实现让访问者自助选择网页文字颜色的方法
2015/02/24 Javascript
javascript闭包的理解
2015/04/01 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
webpack是如何实现模块化加载的方法
2019/11/06 Javascript
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
vue watch监控对象的简单方法示例
2021/01/07 Vue.js
Python-基础-入门 简介
2014/08/09 Python
python开发之文件操作用法实例
2015/11/13 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
Python实现识别手写数字大纲
2018/01/29 Python
Random 在 Python 中的使用方法
2018/08/09 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
安全教育心得体会
2013/12/29 职场文书
养殖项目策划书范文
2014/01/13 职场文书
学习型党组织心得体会
2014/09/12 职场文书
大学学生个人总结
2015/02/15 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python