php array 数组去重,更快的方式实现 PHP 数组去重
如何学习PHP array_flip()定义和用法
array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。
如果原数组中的值的数据类型不是字符串或整...
概述
使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组。这个函数大多数情况下都能工作得很好。但是,如果你尝试在一个大的数组里使用array_unique()函数,它会运行地慢一些。
有一个比较好而且更快的函数array_flip()来替代使用array_unique()函数来创建唯一的数组。这个魔法般的函数会交换数组里面每一个元素的键和值,因为键值必须唯一,因此,你会得到跟array_unique()函数一样的结果。
更快的方式实现PHP数组去重 /* 创建一个包含重复值的,一共四个元素的数组 */$array = array('green','blue','orange','blue');/* 翻转数组,你将会得到唯一键值的数组 array('green'=>0,'blue'=>1,'orange'=>2); */$array = array_flip($array);/* 然后再翻转一次,将键和值重新放置,然后得到数组:array(0=>'green',1=>'blue',2=>'orange'); */$array = array_flip($array);
因为我们已经移除了一些元素,因此数组看起来不是正常的序列。比如我们可能会得到:array(0=>’A’,2=>’B’,5=>’C’);。在某些情况下,这不是一个问题,但是如果你需要数组的键值保持数字的序列,你可以使用一到两种方法解决键值乱序的问题。
使用array_merge修复数组的keys
添加array_flip之后的函数,将会对数组的键值排序并且让它们恢复到正常的序列,如:0,1,2,3… $array = array('green','blue','orange','blue');$array = array_flip($array);$array = array_flip($array);/* 使用array_merge()函数修复键值*/$array = array_merge($array);
第二种方式,使用array_keys
注意,这种修复数组键值的方法比使用array_merge()函数稍微快了一点。你也可以在最后一步结合使用array_keys()函数(此函数返回翻转后的值)。然后当你翻转数组的值,键值就会根据顺序创建。 $array = array('green','blue','orange','blue');$array = array_flip($array);/* 跟第一个例子一样,但是现在我们先提取数组的键值 */$array = array_keys($array);
结论
非常简单,比起在大数组使用array_unique函数,有了一个有效的性能提升。
如何学习PHP array_flip()定义和用法
array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。
如果原数组中的值的数据类型不是字符串或整...
说明 array array_flip ( array trans ) array_flip() 返回一个反转后的 array,例如 trans 中的键名变成了值,而 trans 中的值成了键名。 注意 trans 中的值需要能够作为合法的键名,例如需要是 integer 或者 stri
...会运行地慢一些。 有一个比较好而且更快的函数array_flip()来替代使用array_unique()函数来创建唯一的数组。这个魔法般的函数会交换数组里面每一个元素的键和值,因为键值必须唯一,因此,你会得到跟array_unique()函数一样...
array_flip() 定义和用法 array_flip() 函数将使数组的键名与其相应值调换,即键名变成了值,而值变成了键名。 array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的...
...数有php中array_unique()。那么我们今天为大家介绍的PHP函数array_flip()在删除数组重复元素时的效率要比array_unique()函数高出大约5倍左右。PHP函数array_flip()格式:复制代码 ...
说明 array array_flip ( array trans ) array_flip() 返回一个反转后的 array,例如 trans 中的键名变成了值,而 trans 中的值成了键名。 注意 trans 中的值需要能够作为合法的键名,例如需要是 integer 或者 stri
'丁a'=>'
array_flip() 定义和用法 array_flip() 函数将使数组的键名与其相应值调换,即键名变成了值,而值变成了键名。 array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的...
..."=>"blue","d"=>"yellow");
$result=array_flip($a1);
print_r($result);
?>定义和用法array_flip() 函数用于反转/交换数组中的键
...设有一万个元素的数组,里面有重复的元素。
$arr = array_flip(array_flip($arr)); //这样便可以删除重复元素。
究竟是怎么回事呢?来看下array_flip()的作用:array_flip()用于将一个数组的每个元素的键和值交换,如:
$arr1 ...
php array 数组去重,更快的方式实现 PHP 数组去重相关推荐
- php 数组去重函数,【译】更快的方式实现PHP数组去重
概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组.这个函数大多数情况下都能工作得很好.但是,如果你尝试在一个大的数组里使用array_u ...
- matlab 空矩阵耗时,性能 – 更快的方式通过空矩阵乘法初始化数组? (Matlab)
这很奇怪,我看到f更快,而g比你看到的慢.但是他们对我来说都是一样的.也许不同版本的MATLAB? >> g = @() zeros(1000, 0) * zeros(0, 1000); ...
- 运动基元_Java更快地对基元数组进行排序?
运动基元 看来,在不久的将来,Java中的原语排序数组可能会提高性能. 弗拉基米尔·雅罗斯拉夫斯基(Vladimir Yaroslavskiy)已在core-libs-dev邮件列表中发布了一条消息 ...
- Java更快地对基元数组进行排序?
看起来Java的原语排序数组在不久的将来可能会提高性能. 弗拉基米尔·雅罗斯拉夫斯基(Vladimir Yaroslavskiy)已在core-libs-dev邮件列表中发布了一条消息 ,标题为&qu ...
- python阈值分割_根据阈值分割numpy数组的更快方法
X[~Z]比X[Z==0]快:In [13]: import numpy as np In [14]: X = np.random.random_integers(0, 1000, size=1000 ...
- java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)...
java中数组的三种定义方式 java中,数组是一种很常用的工具,今天我们来说说数组怎么定义 [java] view plain copy /** * 数组的三种定义方法 * 1.数组类型[] 数组名 ...
- 服务器webpack构建性能,[译] 优化 WEBPACK 以更快地构建 REACT
如果您的 Webpack 构建缓慢且有大量的库 -- 别担心,有一种方法可以提高增量构建的速度!Webpack 的 DLLPlugin 允许您将所有的依赖项构建到一个文件中.这是一个取代分块的很好选择 ...
- 数组 去重算法 php,JS数组去重最快的算法
这次给大家带来JS数组去重最快的算法,JS数组去重的注意事项有哪些,下面就是实战案例,一起来看一下. 在JS中经常会遇到去除数组中重复数据的需求,在此介绍四种算法以实现JS数组去重的功能. 1. 速度 ...
- java 一个数组key一个数组value_在各种语言中,使用key在map中获取value 和 使用下标获取数组中的数据 相比哪个更快?...
数组和集合的效率问题数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素.但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的 ...
最新文章
- 一文详尽系列之逻辑回归
- Jenkins常见问题解决(持续更新)
- 禁止apache显示目录索引 apache禁止列目录
- 开花 (Standard IO)
- 取模除法(逆元)(费马小定理)(线性求逆元)
- 证券投资深度学习_安信证券:“深度学习”开启新一轮计算模式变革
- 香港十大外汇交易平台排名(2021最新版)
- 用Python爬虫爬取广州大学教务系统的成绩(内网访问)
- 统计fasta序列条数
- Django项目使用QQ实现第三方登录
- 计算机二级网上报名2019安徽,2019年上半年安徽计算机二级考试报名时间
- MySQL保存特殊字符及表情符
- 建立枚举类型Weekday,假设今日为星期二,计算10天后为星期几。
- Java实现短信验证码最佳实践
- android 点击返回键home,android Home键和返回键
- python3 正则匹配特殊符号_Python3 正则表达式特殊符号及用法(详细列表)
- 软件测试外包的战术有哪些
- request.get乱码解决
- 浅析 BloomFilter
- 【转载】程序员毕业后的第二年发生了哪些变化?