首页 > 后端开发 > php教程 > 过滤掉PHP数组中的重复值的实现代码_php技巧

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

WBOY
发布: 2016-05-17 09:16:54
原创
786 人浏览过
复制代码如下代码:

$arrF = array();
$arrS = array();
$intTotal = 100;
$intRand = 10;
for($i=0; $i {
$arrF[] = rand(1, $intRand);
$arrS[] = rand(1, $intRand);
}
$arrT = array_merge($arrF, $arrS);
$arrRF = array();
$intStart = 时间();
foreach($arrT as $v)
{
if(in_array($v, $arrRF))
{
继续;
}
其他
{
$arrRF[] = $v;
}
}
$intEnd = time();
$intTime = $intEnd-$intStart;
echo "随着继续,花费时间:$intTime
";
$intStart1 = 时间();
$arrRS = array_unique($arrT);
$intEnd2 = 时间();
$intTime2 = $intEnd2-$intStart1;
echo "使用 array_unique 函数,花费时间:($intTime2)";
回显“
”; <BR>print_r($arrT); <BR>print_r($arrRF); <BR>print_r($arrRS); <BR>回显“
”;
?>

在$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.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板