过滤掉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 相关文章推荐
怎样在php中使用PDF文档功能
Oct 09 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
Feb 10 PHP
php中随机显示图片的函数代码
Jun 23 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
Oct 08 PHP
PHP中list()函数用法实例简析
Jan 08 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
常用PHP数组排序函数归纳
Aug 08 PHP
深入浅析PHP的session反序列化漏洞问题
Jun 15 PHP
php微信小程序解包过程实例详解
Mar 31 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获取文件类型和文件信息的方法
2015/07/10 PHP
php实现倒计时效果
2015/12/19 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
浅析location.href跨窗口调用函数
2016/11/22 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
jQuery plugin animsition使用小结
2017/09/14 jQuery
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
Python 字符串中的字符倒转
2008/09/06 Python
9种python web 程序的部署方式小结
2014/06/30 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
python实现简单俄罗斯方块
2020/03/13 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
python 图像增强算法实现详解
2021/01/24 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
新闻记者实习自我鉴定
2013/09/19 职场文书
宝宝周岁宴答谢词
2014/01/26 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
团支部建设方案
2014/05/02 职场文书
推广活动策划方案
2014/08/23 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
上诉答辩状范文
2015/05/22 职场文书
趣味运动会赞词
2015/07/22 职场文书
Java基础——Map集合
2022/04/01 Java/Android