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

 更新时间:2011年07月17日 16:56:51   作者:  
去除一个数组中的重复值,可以使用foreach方法,也可以使用array_unique方法,下面的代码两种方法都使用了。
复制代码 代码如下:

<?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中通过DirectoryIterator删除整个目录的方法

    php中通过DirectoryIterator删除整个目录的方法

    这篇文章主要介绍了php中通过DirectoryIterator删除整个目录的方法,实例分析了php通过DirectoryIterator类操作目录的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP插件PHPMailer发送邮件功能

    PHP插件PHPMailer发送邮件功能

    这篇文章主要为大家详细介绍了PHP发送邮件功能,一个PHPMailer插件轻松实现邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Thinkphp结合ajaxFileUpload实现异步图片传输示例

    Thinkphp结合ajaxFileUpload实现异步图片传输示例

    这篇文章主要给大家介绍了利用Thinkphp结合ajaxFileUpload实现异步图片传输的方法,文中给出了详细的示例代码,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • PHP中如何判断AJAX提交的数据

    PHP中如何判断AJAX提交的数据

    这是一个比较常用的方法,有时候我们需要知道一个页面是被直接访问的还是通过ajax来访问的
    2012-02-02
  • 学习php笔记 字符串处理

    学习php笔记 字符串处理

    学习php笔记 字符串处理,需要的朋友可以参考下。
    2010-10-10
  • java解析json方法总结

    java解析json方法总结

    在本篇文章中小编给大家总结了关于java解析json方法总结以及相关知识点,需要的朋友们学习下。
    2019-05-05
  • 再推荐十款免费的php开发工具

    再推荐十款免费的php开发工具

    这篇文章再向朋友们推荐十款免费的php开发工具,一个好的编辑器或开发工具,能够极大提高我们的开发效率,需要的朋友可以参考下
    2015-11-11
  • PHP中使用hidef扩展代替define提高性能

    PHP中使用hidef扩展代替define提高性能

    这篇文章主要介绍了PHP中使用hidef扩展代替define提高性能,本文着重测试hidef的性能,同时介绍了安装方法和使用示例,需要的朋友可以参考下
    2015-04-04
  • PHP数组实例总结与说明

    PHP数组实例总结与说明

    PHP中共有超过30个新的数组相关函数,其中很多通用函数允许您检查给定数组中是否存在特定对象、对数组元素计数、增加或删除元素,或对元素排序。
    2011-08-08
  • php中运用http调用的GET和POST方法示例

    php中运用http调用的GET和POST方法示例

    调用的GET和POST方法,使用到的函数是curl_init, curl_setopt, curl_exec,curl_close,默认是GET方法
    2014-09-09

最新评论