php去重后重新排键值
更快的方式实现PHP数组去重
1 /* 创建一个包含重复值的,一共四个元素的数组 */
2 $array = array('green','blue','orange','blue');
3
4 /* 翻转数组,你将会得到唯一键值的数组
5 array('green'=>0,'blue'=>1,'orange'=>2); */
6 $array = array_flip($array);
7
8 /* 然后再翻转一次,将键和值重新放置,然后得到数组:array(0=>'green',1=>'blue',2=>'orange'); */
9 $array = array_flip($array);
因为我们已经移除了一些元素,因此数组看起来不是正常的序列。比如我们可能会得到:array(0=>’A’,2=>’B’,5=>’C’);
。在某些情况下,这不是一个问题,但是如果你需要数组的键值保持数字的序列,你可以使用一到两种方法解决键值乱序的问题。
使用array_merge修复数组的keys
添加array_flip之后的函数,将会对数组的键值排序并且让它们恢复到正常的序列,如:0,1,2,3…
1 $array = array('green','blue','orange','blue');
2 $array = array_flip($array);
3 $array = array_flip($array);
4
5 /* 使用array_merge()函数修复键值*/
6 $array = array_merge($array);
第二种方式,使用array_keys
注意,这种修复数组键值的方法比使用array_merge()
函数稍微快了一点。你也可以在最后一步结合使用array_keys()
函数(此函数返回翻转后的值)。然后当你翻转数组的值,键值就会根据顺序创建。
1 $array = array('green','blue','orange','blue');
2 $array = array_flip($array);
3 /* 跟第一个例子一样,但是现在我们先提取数组的键值 */
4 $array = array_keys($array);
结论
非常简单,比起在大数组使用array_unique函数,有了一个有效的性能提升。
查看PHP的源码,可以发现,在array_unique函数的实现中,有排序的操作,所以array_unique用的时间比较长。
转载请标明来处:https://blog.csdn.net/TiaoZhanJi_Xian/article/details/80752295
请尊重经验,别只会照搬,谢谢,如有问题,可咨询QQ:977798066,乐意为你解答
php去重后重新排键值相关推荐
- mybatis中useGeneratedKeys用法--插入数据库后获取主键值
前言:今天无意在mapper文件中看到useGeneratedKeys这个词,好奇就查了下,发现能解决我之前插入有外键表数据时,这个外键获取繁琐的问题,于是学习敲DEMO记录 在项目中经常需要获 ...
- mybatis mysql usegeneratedkeys_mybatis中useGeneratedKeys用法--插入数据库后获取主键值
前言:今天无意在mapper文件中看到useGeneratedKeys这个词,好奇就查了下,发现能解决我之前插入有外键表数据时,这个外键获取繁琐的问题,于是学习敲DEMO记录 在项目中经常需要获取到插 ...
- 数组中的键值对去重_javascript利用对象键值对中键的唯一性实现数组去重
/p> "http://www.w3.org/TR/html4/loose.dtd"> var arr = [1,2,3,2,3,4,5,6,7,8,9,8,5]; / ...
- mybatis新增返回主键值
mapper <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC ...
- 隐藏受保护的系统文件的注册表键值
前几天自己笔记本中毒,受保护的隐藏文件一直会显示出来,很烦人,在网上找到了它的键值 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersio ...
- 3、JavaWeb中Service层的作用、MyBatis的重要组件、mybatis-config.xml中的别名映射、properties配置、#{}和${}的区别、获取插入数据的主键值
文章目录 1.Service层的作用 2.MyBatis重要组件 Resources SqlSessionFactoryBuilder SqlSessionFactory SqlSession 针对上 ...
- java数据存储常用数据结构的实现:栈(先进后出),队(先进先出),字典(键值对),集合(去重)
对于变得强大,首先你能尽量做的,就是接受弱小的事实. 大部分情况下,我们在从输入流中读出数据的时候,不会对数据进行分析,不会想究竟用什么数据结构存储它比较好.一拍脑袋都怼进了数组里面,然后根据题意去一 ...
- js 去重某个键值 数组对象_JS数组去重常见方法分析
数组去重是开发中经常会遇到的问题,也是面试时经常会考到的.JS实现数组去重可以有多种方法: 一.简单的去重方法 用一个类比来简单解释一下这种去重方法的思路:A篮子里有若干个不同颜色和大小的球,旁边放一 ...
- 快排算法的针对重复键值的优化
上一节讲了快排算法在序列基本有序的情况下的两种优化方法,这一节我们对新的测试用例进行测试,测试用例如下所示: int main() {//测试 - 待排序列的重复值很多int n = 400000;i ...
最新文章
- 条形码?二维码?生成、解析都在这里!
- 知识点回顾-简单的TableView单组数据展示/多组数据展示
- 京东云擎提供了免费的wordpress一键安装功能了
- django-websocket 安装及配置
- Redis服务器被劫持风波
- 【二分法】计蒜客:气球消消乐
- 三维重建-立体校正(Recitification)
- winfrom软件开发汽车测试_从事汽车电子软件开发岗,我们最近还没那么愁
- 1091 Acute Stroke (30 分)广度优先搜索,用queue,重写一遍
- Rhino(Grasshopper)+PaddleX快速建模
- 智能聊天对话机器人的对比
- Win10共享文件时提示需要输入网络凭据怎么办?
- LCM液晶显示模组是什么,液晶显示模块有几种类型呢
- 云端敏捷部署单节点MySQl与Redis服务(以Ubuntu为例)
- 栈迁移过程记录,栈指针rsp、rbp、rip、leave变化过程
- 北漂12年,洋哥为什么这么重视认知?
- 弘辽科技:丁真一夜爆红背后的直播发展趋势
- selenium豆瓣登陆
- 数学物理方法·基础⑦基本初等复变函数的计算公式/方法
- USB转TTL给ESP8266-12F芯片下载程序
热门文章
- 什么是跨域问题,跨域问题如何解决
- 路飞学城python开发入门学习
- 灵活分控、尽在掌控,同为(TOWE)四合一防雷防浪涌桌面PDU
- GPT-4正式发布!ChatGPT大升级!太强了!
- 修改Android app名字(Android Studio)
- MySQL - MySQL查询语句的执行过程
- 张萌韩墨羽——BroadCast 广播
- android intent { (has extras) },android – 活动开始时缺少Intent extras
- 传统建站与响应式建站的区别是什么?
- Android底层开发工作小结