在php中如果我想要对两个数组进行如并集、交集和差集操作,我们可直接使用php自带的函数来操作如array_merge(),array_intersect(),array_diff().

//计算数组的合并 array_merge与“+”的区别

array_merge() 函数把两个或多个数组合并为一个数组。

如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则键名会以连续方式重新索引。

注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。(参见例子 2)

代码如下

$a = array(1 => 'a', 'b', 'c');

$b = array(1 => 'aa', 2, 'c');

$union = array_merge($a, $b);

$plus = $a + $b;

print_r($union);

print_r($plus);

结果依次为:

Array

{

[0]=> a

[1]=> b

[2]=> c

[3]=> aa

[4]=> 2

[5]=> c

}

Array

(

[1] => a

[2] => b

[3] => c

)

要合并的两个数组中有相同的字符串键的时候,使用array_merge()会覆盖掉原来的值,

而使用“+”合并数组则会和用“+”号合并数组相同数字键一样把最先出现的值作为最终结果返回,如下例:

代码如下

$a2 = array('str' => 'a', 'b', 'c');

$b2 = array('str' => 'aa', 2, 'c');

$union2 = array_merge($a2, $b2);

$plus2 = $a2 + $b2;

print_r($union2);

print_r($plus2);

结果依次为:

Array

(

[str] => aa

[0] => b

[1] => c

[2] => 2

[3] => c

)

Array

(

[str] => a

[0] => b

[1] => c

)

注:如果想用array_merge合并两个数组,返回结果可能还会有相同的元素,这时候可以用array_unique()把相同的元素去掉

//计算数组的交集

array_intersect() 函数返回两个或多个数组的交集数组。

结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变。

注释:仅有值用于比较。

代码如下

$a = array('jpg','png','gif','bmp');

$b = array('JPG','txt','docx','bmp');

$intersection = array_intersect($a, $b);

还可以通过函数,获取自己想要的(比如元素不区分大小写)

代码如下

$intersection2 = array_intersect(array_map('strtolower',$a), array_map('strtolower',$b));

print_r($intersection);

print_r($intersection2);

结果依次为:

代码如下

Array

(

[3] => bmp

)

Array (

[0] => jpg

[3] => bmp

)

//计算数组的差集

代码如下

$old = array('jpg','png','gif','bmp');

$new = array('JPG','txt','docx','bmp');

$difference = array_diff($old, $new);

注:返回结果的元素包含$old的元素,不包括$new的元素

print_r($difference);

结果为:

代码如下

Array

(

[0] => jpg

[1] => png

[2] => gif

)

也可以用函数先进行处理,再计算差集

array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。

在返回的数组中,键名保持不变。

语法

array_diff(array1,array2,array3...)

代码如下

$difference = array_diff(array_map('strtolower',$old), array_map('strtolower',$new));

http://www.bkjia.com/PHPjc/633094.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633094.htmlTechArticle在php中如果我想要对两个数组进行如并集、交集和差集操作,我们可直接使用php自带的函数来操作如array_merge(),array_intersect(),array_diff(). //计...

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

php 2个数组并集,php中数组的并集、交集和差集函数介绍_PHP教程相关推荐

  1. php文件读写用什么函数,php中常用文件操作读写函数介绍_PHP教程

    本文章介绍了下面几个常用的文件操作函数 file_get_contents 读取整个文件内容 fopen 创建和打开文件 fclose 关闭文件 fgets 读取文件一行内容 file_exists ...

  2. java 数组参数_java中 数组可以作为形式参数传递到调用的方法中吗?要怎么操作?...

    展开全部 可以,操作代码如下: public class ArrTest{ public static void doTest(String[] args){ for(int i=0;i System ...

  3. swift语言 数组定义_Swift3中数组创建方法

    转载自:http://blog.csdn.net/bwf_erg/article/details/70858865 数组是由一组类型相同的元素构成的有序数据集合.数组中的集合元素是有 序的,而且可以重 ...

  4. c语言变量定义数组,C语言中数组的定义和使用

    一.1.一维数组的定义: 类型说明符 数组名[常量表达式];    注意:常量表达式包括常量与符号常量,不能包含变量. 2.一维数组的引用: 数组名[下标]; 3.一维数组的初始化: a.在定义数组时 ...

  5. php中不让数组初始化,javascript中数组与php数组初始化差异

    准确来说,javascript中我们需要称之为数组对象,因为数组就是对象,不信你看: var a=[1,2,3]; //竟然会弹出object alert(typeof(a)); 之前学习php的时候 ...

  6. 数组方法 + ES6中数组方法 + 数组的空位

    目录 1.静态方法 1.Array.isArray() Array.isArray方法返回一个布尔值,表示参数是否为数组.它可以弥补typeof运算符的不足. 2.Array.from() 用于将两类 ...

  7. matlab怎么输入二维数组,[转载]matlab中数组的输入

    1 matlab中数组的输入 在matlab中写数组,直接输入元素的数组,应用中括号[],成行向量时,元素之间用空格或逗号隔开,成列向量时,分列处用分号隔开,也可以对相应行向量作转置,为在中括号外加单 ...

  8. python定义数组变量_python中数组用法

    增加时a.append( 'a ')就可以了.只要按顺序加,就没有问题 . 使用时,完全可以使用下标: 代码如下 复制代码 a[0] a[1] 但出果引用不存在的下标,则会引发异常.这时,你需要先添加 ...

  9. c语言如何用指针操作一维字符数组,C语言中数组和指针的互操作

    C是一种怀旧的语言,因为它的历史很久远,然而自从各种面向对象的编程语言的相续出现让它的影响力日减.当然了,这是无可非议的,但是C的高效性是其他语言无妨比拟的,所以我们有必要把握其中的精华与奥妙,也就有 ...

最新文章

  1. 来自新手Banana Pi香蕉派初体验
  2. Dominating Patterns
  3. my ax 4 faq
  4. Gym 101334F Feel Good
  5. 【转】Office365完整离线安装包下载及自定义安装教程
  6. ImageGP新上几个小工具
  7. 客户端级别的渲染分析工具 dynaTrace
  8. 初学Python——字符串相关操作
  9. linux开启新的一行,linux启动ekp脚本【一行命令重启ekp】
  10. ie6中 object doesn’t support this property or method
  11. “抖音群控系统”教你如何抓住短视频时代风口,进行流量红利变现
  12. 打算考PMP,需要准备什么材料?
  13. 2021年中国电动自行车行业现状分析:产业特征明显,“新国标”促使行业发展更加规范化[图]
  14. 星巴克在东京开设四层楼的全沉浸式优质咖啡体验门店
  15. 下载youtube 在线工具_5款不用下载的免费在线做图工具,满足你日常图片处理需求...
  16. PDF转图片怎样转换?有哪些好用PDF转换的方法?
  17. 鸿蒙纪元1.2正式版隐藏英雄,毁灭纪元1.3.2官方版 附隐藏英雄密码+攻略
  18. 用DownSub 导出TED和youtube字幕
  19. H5页面调起地图导航
  20. linux网络凭据,适用于Linux和Windows的服务器凭据管理

热门文章

  1. Python编程:sh模块执行shell命令
  2. oracle 11g Dataguard 之 Remote_Transport_user
  3. python:pass关键字的作用
  4. android 通知静音_如何使电话静音(但不包括短信和通知)
  5. 95后开始考虑结婚?北京剩女80万-全国十大单身男女盛产地都在哪?
  6. 在类方法中可 用this来调用本类的类方法
  7. vue路由传参的三种方式/含页面刷新参数丢失解决方案(详细)
  8. Microchip最新推出的ATMEGA4809-XPRO开发板简介
  9. R语言实现并行计算[parallel,Rdsm]
  10. android程序设计拍照,Android编程实现拍照功能的2种方法分析