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下删除字符串中HTML标签的函数
Aug 27 PHP
php header Content-Type类型小结
Jul 03 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
Oct 08 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
php页面缓存ob系列函数介绍
Oct 18 PHP
phpmyadmin打开很慢的解决方法
Apr 21 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
PHP中feof()函数实例测试
Aug 23 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
PHP引用返回用法示例
May 28 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
php处理多图上传压缩代码功能
Jun 13 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
Laravel 错误提示本地化的实现
2019/10/22 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
HTML的select控件美化
2017/03/27 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
详解jquery和vue对比
2019/04/16 jQuery
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
python3简单实现微信爬虫
2015/04/09 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
python3实现磁盘空间监控
2018/06/21 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
Python中的整除和取模实例
2020/06/03 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
Python turtle库的画笔控制说明
2020/06/28 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
如何利用python发送邮件
2020/09/26 Python
Django数据库迁移常见使用方法
2020/11/12 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
幼儿园家长评语
2014/02/10 职场文书
校园活动宣传方案
2014/03/28 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
升职演讲稿范文
2014/05/23 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang