PHP合并数组及去重
本文介绍的是一维数组的去重
合并数组的方法
array_merge:
- 数字键,直接往后添加,key重置
- 字符串键,后面的数组的值会替代前面的值
+:
- 数字键,后面的数组的值不会替代前面的值
- 字符串键,后面的数组的值会替代前面的值
合并数组并去重
//1.单数组去重复
array_unique($arrTest)
//2.多数组去重复
array_keys(array_flip($arr1)+array_flip($arr2))
测试功能
$arr1 = [1,2,3,4,5];
$arr2 = [1,2,3,6,7]; $arr3 = ['0'=>1,'1'=>2,'2'=>3,'3'=>4,'4'=>5];
$arr4 = ['0'=>1,'1'=>2,'2'=>3,'3'=>6,'4'=>7]; $arr5 = ['0'=>1,'a'=>2,'b'=>3,'c'=>4,'4'=>5];
$arr6 = ['0'=>1,'a'=>2,'c'=>3,'d'=>6,'4'=>7];
dump(array_merge($arr1, $arr2));
dump($arr1+$arr2);
dump(array_keys(array_flip($arr1)+array_flip($arr2)));
echo '<br>';
dump(array_merge($arr3, $arr4));
dump($arr3+$arr4);
dump(array_keys(array_flip($arr3)+array_flip($arr4)));
echo '<br>';
dump(array_merge($arr5, $arr6));
dump($arr5+$arr6);

PHP合并数组及去重的更多相关文章
- 合并两个数组并去重(ES5和ES6两种方式实现)
合并两个数组并去重(ES5和ES6两种方式实现) ES6实现方式 let arr1 = [1, 1, 2, 3, 6, 9, 5, 5, 4] let arr2 = [1, 2, 5, 4, 9, 7 ...
- 数组去重----es6&es5&数组对象去重
es6方法: 普通数组: 1.使用Array.from(new Set(arr)); /* * @param oldArr 带有重复项的旧数组 * @param newArr 去除重复项之后的新数组 ...
- list数组归并去重
C#两路list数组归并去重 个相同类型已排序数据进行合并,虽然list数组中有AddRange方法,但它只是把第二个数组从第一个数组末尾插入,假如两个数组有重复数据,保存进去.还有Union方法合并 ...
- PHP中通过加号合并数组
通常,我们合并多个数组用的是array_merge()函数,其实,PHP手册中关于数组操作符的介绍给了我们更简单的方法,那就是"+"号,看看下面的例子就明白了(详细了解) 代码: ...
- JS中数组对象去重
JS数组去重 JS中对数组去重最好不要用unique方法,该方法主要是对dom节点数组的去重,如果对普通的数组元素去重只会去掉与之相邻的重复元素,也就是如果数组中还有不相邻的重复元素存在,将不会被去掉 ...
- PHP合并数组array_merge函数运算符加号与的区别
两个的区别是:1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用“+”合并数组则会把最先出现的值作为最终结果返回,而把后面的数 ...
- PHP合并数组保留key值
PHP合并数组,键值不变 尝试了好几个合并数组的函数, 但是都是把key值重置, 导致key值丢失(因为key值是要用到的) 大大说, 最好用数组的相关函数, 网上随意找了下, 还是没找到. 因为 ...
- PHP中使用函数array_merge()合并数组
如果明白数组其实就是map的话,我想你就会明白array_merge为什么要这么实现了 PHP中合并数组分成两种情况 1.如果这两个数组中有相同的字符串键名: <?php header('Con ...
- PHP合并数组+与array_merge的区别分析
主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面 ...
随机推荐
- 我的第一个 react redux demo
最近学习react redux,先前看过了几本书和一些博客之类的,感觉还不错,比如<深入浅出react和redux>,<React全栈++Redux+Flux+webpack+Bab ...
- android:第十章,后台的默默劳动者——服务,学习笔记
一.多线程 1)本章首先介绍了安卓的多线程编程,说明在子线程中如果要修改UI,必须通过Handler, Message, MessageQueue, Looper来实现,但是这样毕竟太麻烦了. 2) ...
- 【Zuul】Zuul过滤器参考资料
#https://blog.csdn.net/chenqipc/article/details/53322830#https://github.com/spring-cloud/spring-clou ...
- A Sample Linker Script
from:http://www.hertaville.com/a-sample-linker-script.html A sample script file that will work with ...
- Python调试打印错误信息
try: ..... except Exception, e: print 'repr(e):\t', repr(e)
- 每天一个linux命令(14):head命令
1.命令简介 head (head) 用来显示档案的开头至标准输出中.如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头.如果不指定文件,或者文件为"-",则从标准输入读 ...
- V-rep学习笔记:切削
V-REP allows you to perform cutting simulations. The user can model almost any type of cutting volum ...
- http范围请求
基于范围请求 可以实现 断点续传和多线程分片下载 HTTP/1.1之后才支持,需要双端都支持 服务端头信息中有 Accept-Ranges:bytes 表明服务器支持范围请求 curl -I &quo ...
- 内核中的锁机制--RCU
一. 引言 众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了 ...
- Nginx防压力测试
一.ab压力测试方式为: $ab -n 1000 -c 100 http://www.abc.com:80/ 二.直接简单的方法限制同一个IP的并发最大为10:(以宝塔管理工具为例) 1.打开Ngin ...