过滤掉PHP数组中的重复值的实现代码


Posted in PHP onJuly 17, 2011
<?php 
$arrF = array(); 
$arrS = array(); 
$intTotal = 100; 
$intRand = 10; 
for($i=0; $i < $intTotal; $i++) 
{ 
$arrF[] = rand(1, $intRand); 
$arrS[] = rand(1, $intRand); 
} 
$arrT = array_merge($arrF, $arrS); 
$arrRF = array(); 
$intStart = time(); 
foreach($arrT as $v) 
{ 
if(in_array($v, $arrRF)) 
{ 
continue; 
} 
else 
{ 
$arrRF[] = $v; 
} 
} 
$intEnd = time(); 
$intTime = $intEnd-$intStart; 
echo "With Continue,Spend time:$intTime<br/>"; 
$intStart1 = time(); 
$arrRS = array_unique($arrT); 
$intEnd2 = time(); 
$intTime2 = $intEnd2-$intStart1; 
echo "With array_unique function,Spend time:($intTime2)"; 
echo "<pre>"; 
print_r($arrT); 
print_r($arrRF); 
print_r($arrRS); 
echo "</pre>"; 
?>

在$intTotal比较小的情况下,比如说1000以内,$intRand的取值基本不影响结果,两者执行的时间都差不多。

测试$intTotal 大于10000时,$intRand取值100时,使用array_unique的效率要高于foreach循环判断,$intRand=10,两者执行时间一致。

因此,可以得出结论,当数组容量不大,大概在1000以内时,使用两者的执行效率差不多。

当数组容量比较大时(具体应该到什么值,我没有详细测试,感兴趣的可以确定一下这个值),随着$intRand的逐渐增大,array_unique的表现更好,我不使用$intTotal/$intRand这个比值,是因为,感觉并不是成比例变化,但是基本会遵循比值越大,array_unique表现越好。

综上所述,在过滤数组重复值的时候,建议使用array_unuique,数组不大的时候两者效率等同,而array_unique使用当然让你的代码一下子减了好几行,数组容量过大时,函数的表现更好,为什么不用呢?

PHP 相关文章推荐
19个超实用的PHP代码片段
Mar 14 PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
Dec 31 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
CI框架实现框架前后端分离的方法详解
Dec 30 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
PHP二维数组的去重问题解析
Jul 17 #PHP
简单的PHP多图上传小程序代码
Jul 17 #PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 #PHP
PHP 验证码的实现代码
Jul 17 #PHP
PHP中用hash实现的数组
Jul 17 #PHP
PHP中文分词的简单实现代码分享
Jul 17 #PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 #PHP
You might like
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
关工委先进个人事迹材料
2014/05/23 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
500字小学生检讨书
2015/02/19 职场文书
个人政治思想总结
2015/03/05 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers