PHP数组去重的更快实现方式分析

PHP数组去重的更快实现方式分析PHP数组去重的更快实现方式分析

大家好,又见面了,我是你们的朋友全栈君。

概述

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

有一个比较好而且更快的函数array_flip()来替代使用array_unique()函数来创建唯一的数组。这个魔法般的函数会交换数组里面每一个元素的键和值,因为键值必须唯一,因此,你会得到跟array_unique()函数一样的结果。

/* 创建一个包含重复值的,一共四个元素的数组 */
$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);

因为我们已经移除了一些元素,因此数组看起来不是正常的序列。
1,使用array_merge修复数组的keys

$array = array('green','blue','orange','blue');
$array = array_flip($array);
$array = array_flip($array);
/* 使用array_merge()函数修复键值*/
$array = array_merge($array);
print_r($array)

2,使用array_keys

$array = array('green','blue','orange','blue');
$array = array_flip($array);
/* 跟第一个例子一样,但是现在我们先提取数组的键值 */
$array = array_keys($array);

结论

非常简单,比起在大数组使用array_unique函数,有了一个有效的性能提升。

在线去除重复项工具:
http://tools.jb51.net/code/quchong

在线文本去重复工具:
http://tools.jb51.net/aideddesign/txt_quchong

原文地址

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105916.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • VB.Net程序设计:分页控件

    VB.Net程序设计:分页控件参考网络上大牛的文章,特别感谢伍华聪,分享了许多分页的文章。无论什么类型的数据库,数据量大了就需要分页,数据量大了,就要考虑分页的效率等。效率在此不做分析。分页控件支持不同类型数据库如:MSSQLServerMySQLSQLiteAccess等,只要有分页SQL语句,即可根据vb.net教程分页信息,取出相应的数据内容,再将数据内容绑定或者加工显示到UI上。分页控件需要做的事:显示页面信息。可以随意跳转到指定的页。根据页面信息返回具体的SQL分页语句。返回取出的数据内容。分页控件

  • LDAP协议介绍[通俗易懂]

    LDAP协议介绍[通俗易懂]LDAP协议基础概念 1.从用途上阐述LDAP,它是一个存储静态相关信息的服务,适合“一次记录多次读取”。常用LDAP服务存储的信息: 公司的物理设备信息(如打印机,它的IP地址、存放位置、厂商、购买时间等)公开的员工信息(地址、电话、电子邮件…)合同和账号信息(客户信息、产品交付日期、投标信息、项目信息…)凭证信息(认证凭证、许可证凭证…)2

    2022年10月31日
  • SSM整合(1)

    SSM整合(1)一、web.xml<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w

  • mac phpstorm激活码2022【2022.01最新】2022.02.27

    (mac phpstorm激活码2022)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html2KLKA7BQFO-eyJsaWNlbnNlSW…

  • Win7如何简单的关闭445端口及445端口入侵详解

    Win7如何简单的关闭445端口及445端口入侵详解最近永恒之蓝病毒攻击了很多教育网的同学,下面我们就来看一下如何关闭445端口根据网络安全机构通报,这是不法分子利用NSA黑客武器库泄漏的“永恒之蓝”发起的病毒攻击事件。“永恒之蓝”会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。由于以前国内多次爆发利用445端口传播的蠕虫,运

  • 第二:Pycharm设置配置(非常详细)「建议收藏」

    第二:Pycharm设置配置(非常详细)「建议收藏」1、汉化:把resources_zh.jar拷贝到PyCharm的安装目录下的lib目录,重启Pycharm即可。(resources_zh.jar汉化包关注本账号获取:链接:https://pan.baidu.com/s/1JCpTloWnQdQ8ShsUt-Qabg提取码:i7pu)如果打开后显示乱码,请先删除resources_cn.jar,然后打开pycharm2017,在菜单上依次选择File->Settings->Appearance&Behavior

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号