php 2个数组并集,php中数组的并集、交集和差集函数介绍_PHP教程
在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教程相关推荐
- php文件读写用什么函数,php中常用文件操作读写函数介绍_PHP教程
本文章介绍了下面几个常用的文件操作函数 file_get_contents 读取整个文件内容 fopen 创建和打开文件 fclose 关闭文件 fgets 读取文件一行内容 file_exists ...
- java 数组参数_java中 数组可以作为形式参数传递到调用的方法中吗?要怎么操作?...
展开全部 可以,操作代码如下: public class ArrTest{ public static void doTest(String[] args){ for(int i=0;i System ...
- swift语言 数组定义_Swift3中数组创建方法
转载自:http://blog.csdn.net/bwf_erg/article/details/70858865 数组是由一组类型相同的元素构成的有序数据集合.数组中的集合元素是有 序的,而且可以重 ...
- c语言变量定义数组,C语言中数组的定义和使用
一.1.一维数组的定义: 类型说明符 数组名[常量表达式]; 注意:常量表达式包括常量与符号常量,不能包含变量. 2.一维数组的引用: 数组名[下标]; 3.一维数组的初始化: a.在定义数组时 ...
- php中不让数组初始化,javascript中数组与php数组初始化差异
准确来说,javascript中我们需要称之为数组对象,因为数组就是对象,不信你看: var a=[1,2,3]; //竟然会弹出object alert(typeof(a)); 之前学习php的时候 ...
- 数组方法 + ES6中数组方法 + 数组的空位
目录 1.静态方法 1.Array.isArray() Array.isArray方法返回一个布尔值,表示参数是否为数组.它可以弥补typeof运算符的不足. 2.Array.from() 用于将两类 ...
- matlab怎么输入二维数组,[转载]matlab中数组的输入
1 matlab中数组的输入 在matlab中写数组,直接输入元素的数组,应用中括号[],成行向量时,元素之间用空格或逗号隔开,成列向量时,分列处用分号隔开,也可以对相应行向量作转置,为在中括号外加单 ...
- python定义数组变量_python中数组用法
增加时a.append( 'a ')就可以了.只要按顺序加,就没有问题 . 使用时,完全可以使用下标: 代码如下 复制代码 a[0] a[1] 但出果引用不存在的下标,则会引发异常.这时,你需要先添加 ...
- c语言如何用指针操作一维字符数组,C语言中数组和指针的互操作
C是一种怀旧的语言,因为它的历史很久远,然而自从各种面向对象的编程语言的相续出现让它的影响力日减.当然了,这是无可非议的,但是C的高效性是其他语言无妨比拟的,所以我们有必要把握其中的精华与奥妙,也就有 ...
最新文章
- 来自新手Banana Pi香蕉派初体验
- Dominating Patterns
- my ax 4 faq
- Gym 101334F Feel Good
- 【转】Office365完整离线安装包下载及自定义安装教程
- ImageGP新上几个小工具
- 客户端级别的渲染分析工具 dynaTrace
- 初学Python——字符串相关操作
- linux开启新的一行,linux启动ekp脚本【一行命令重启ekp】
- ie6中 object doesn’t support this property or method
- “抖音群控系统”教你如何抓住短视频时代风口,进行流量红利变现
- 打算考PMP,需要准备什么材料?
- 2021年中国电动自行车行业现状分析:产业特征明显,“新国标”促使行业发展更加规范化[图]
- 星巴克在东京开设四层楼的全沉浸式优质咖啡体验门店
- 下载youtube 在线工具_5款不用下载的免费在线做图工具,满足你日常图片处理需求...
- PDF转图片怎样转换?有哪些好用PDF转换的方法?
- 鸿蒙纪元1.2正式版隐藏英雄,毁灭纪元1.3.2官方版 附隐藏英雄密码+攻略
- 用DownSub 导出TED和youtube字幕
- H5页面调起地图导航
- linux网络凭据,适用于Linux和Windows的服务器凭据管理
热门文章
- Python编程:sh模块执行shell命令
- oracle 11g Dataguard 之 Remote_Transport_user
- python:pass关键字的作用
- android 通知静音_如何使电话静音(但不包括短信和通知)
- 95后开始考虑结婚?北京剩女80万-全国十大单身男女盛产地都在哪?
- 在类方法中可 用this来调用本类的类方法
- vue路由传参的三种方式/含页面刷新参数丢失解决方案(详细)
- Microchip最新推出的ATMEGA4809-XPRO开发板简介
- R语言实现并行计算[parallel,Rdsm]
- android程序设计拍照,Android编程实现拍照功能的2种方法分析