如何学习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 数组去重相关推荐

  1. php 数组去重函数,【译】更快的方式实现PHP数组去重

    概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组.这个函数大多数情况下都能工作得很好.但是,如果你尝试在一个大的数组里使用array_u ...

  2. matlab 空矩阵耗时,性能 – 更快的方式通过空矩阵乘法初始化数组? (Matlab)

    这很奇怪,我看到f更快,而g比你看到的慢.但是他们对我来说都是一样的.也许不同版本的MATLAB? >> g = @() zeros(1000, 0) * zeros(0, 1000); ...

  3. 运动基元_Java更快地对基元数组进行排序?

    运动基元 看来,在不久的将来,Java中的原语排序数组可能会提高性能. 弗拉基米尔·雅罗斯拉夫斯基(Vladimir Yaroslavskiy)已在core-libs-dev邮件列表中发布了一条消息 ...

  4. Java更快地对基元数组进行排序?

    看起来Java的原语排序数组在不久的将来可能会提高性能. 弗拉基米尔·雅罗斯拉夫斯基(Vladimir Yaroslavskiy)已在core-libs-dev邮件列表中发布了一条消息 ,标题为&qu ...

  5. python阈值分割_根据阈值分割numpy数组的更快方法

    X[~Z]比X[Z==0]快:In [13]: import numpy as np In [14]: X = np.random.random_integers(0, 1000, size=1000 ...

  6. java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)...

    java中数组的三种定义方式 java中,数组是一种很常用的工具,今天我们来说说数组怎么定义 [java] view plain copy /** * 数组的三种定义方法 * 1.数组类型[] 数组名 ...

  7. 服务器webpack构建性能,[译] 优化 WEBPACK 以更快地构建 REACT

    如果您的 Webpack 构建缓慢且有大量的库 -- 别担心,有一种方法可以提高增量构建的速度!Webpack 的 DLLPlugin 允许您将所有的依赖项构建到一个文件中.这是一个取代分块的很好选择 ...

  8. 数组 去重算法 php,JS数组去重最快的算法

    这次给大家带来JS数组去重最快的算法,JS数组去重的注意事项有哪些,下面就是实战案例,一起来看一下. 在JS中经常会遇到去除数组中重复数据的需求,在此介绍四种算法以实现JS数组去重的功能. 1. 速度 ...

  9. java 一个数组key一个数组value_在各种语言中,使用key在map中获取value 和 使用下标获取数组中的数据 相比哪个更快?...

    数组和集合的效率问题数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素.但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的 ...

最新文章

  1. 一文详尽系列之逻辑回归
  2. Jenkins常见问题解决(持续更新)
  3. 禁止apache显示目录索引 apache禁止列目录
  4. 开花 (Standard IO)
  5. 取模除法(逆元)(费马小定理)(线性求逆元)
  6. 证券投资深度学习_安信证券:“深度学习”开启新一轮计算模式变革
  7. 香港十大外汇交易平台排名(2021最新版)
  8. 用Python爬虫爬取广州大学教务系统的成绩(内网访问)
  9. 统计fasta序列条数
  10. Django项目使用QQ实现第三方登录
  11. 计算机二级网上报名2019安徽,2019年上半年安徽计算机二级考试报名时间
  12. MySQL保存特殊字符及表情符
  13. 建立枚举类型Weekday,假设今日为星期二,计算10天后为星期几。
  14. Java实现短信验证码最佳实践
  15. android 点击返回键home,android Home键和返回键
  16. python3 正则匹配特殊符号_Python3 正则表达式特殊符号及用法(详细列表)
  17. 软件测试外包的战术有哪些
  18. request.get乱码解决
  19. 浅析 BloomFilter
  20. 【转载】程序员毕业后的第二年发生了哪些变化?

热门文章

  1. C++空类的默认成员函数总结
  2. Android10 黑色主题 适配
  3. STM8L101 与 STM8S103区别
  4. 别不信,学IT这些网站够猛!
  5. MySQL流水账(一)
  6. 新倩女幽魂服务器维修,《新倩女幽魂》2018年3月份新区 四组新春服务器开启
  7. ansysworkbench直线和曲线路径设置
  8. 433M串口模块无线通信(STM32)
  9. 携创教育:10月自考英语二全国试卷是一样的?
  10. matlab lbm 代码,Matlab实现格子玻尔兹曼方法(Lattice Boltzmann Method,LBM)模拟