php数据库数组过滤 php实现数据筛选

过滤掉PHP数组中的重复值的实现代码复制代码
代码如下:
?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:$intTimebr/";
$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数组的重复值如何过滤掉array_unique() 函数移除数组中php数据库数组过滤的重复的值php数据库数组过滤,并返回结果数组 。
当几个数组元素的值相等时php数据库数组过滤 , 只保留第一个元素php数据库数组过滤,其php数据库数组过滤他的元素被删除 。
返回的数组中键名不变 。
array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名 。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留 。
php中过滤数组中的某个值?php
$bb=array('a');
$aa=array('a','b','c','d','e','f');
$cc=array_diff($aa, $bb);
print_r($cc);
?
array_diff 返回2个数组的差集,数组元素多的放前面
【php数据库数组过滤 php实现数据筛选】php数据库数组过滤的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php实现数据筛选、php数据库数组过滤的信息别忘了在本站进行查找喔 。

    推荐阅读