过滤掉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 相关文章推荐
40个迹象表明你还是PHP菜鸟
Sep 29 PHP
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
PHP二维数组的去重问题解析
Jul 17 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
探讨php中遍历二维数组的几种方法详解
Jun 08 PHP
php增删改查示例自己写的demo
Sep 04 PHP
分享3个php获取日历的函数
Sep 25 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
PHP基于进程控制函数实现多线程
Dec 09 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函数
2006/10/09 PHP
PHP日期处理函数 整型日期格式
2011/01/12 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
Angular 应用技巧总结
2016/09/14 Javascript
快速实现jQuery多级菜单效果
2017/02/01 Javascript
Vue.use源码分析
2017/04/22 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
python实现超简单端口转发的方法
2015/03/13 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
python实现壁纸批量下载代码实例
2018/01/25 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
python交易记录链的实现过程详解
2019/07/03 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
Python3内置模块random随机方法小结
2019/07/13 Python
python 求定积分和不定积分示例
2019/11/20 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
澳大利亚家具商店:Freedom
2020/12/17 全球购物
食堂员工工作职责
2013/12/18 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
民事诉讼代理词
2015/05/25 职场文书
团组织推荐意见
2015/06/05 职场文书
春晚观后感
2015/06/11 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
mysql自增长id用完了该怎么办
2022/02/12 MySQL