博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】in_array — 检查数组中是否存在某个值,bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )。在 haystack 中搜索 needle,如果没有设置 strict 则使用宽松的比较。
in_array() 添加第三个参数为 true ,即变为严格比较,同时还要比较类型,这样避免了 PHP 进行转换类型,跑起来果然快多了。下面是一个对比试验,结果可以说明,in_array() 中添加了第三个参数 true ,会明显缩短比较的时间。
// 获取当前的时间戳(含微秒)
function get_microtime()
{
list($usec,$sec) = explode(" ",microtime());
return ((float)$sec + (float)$usec);
}
$a = "1800";
$arr = array();
for($j = 0;$j < 3000;$j ++)
{
$arr[]= "{$j}";
}
$begin_time = get_microtime();
for($i = 0;$i < 3000;$i ++)
{
if(in_array($a,$arr))
{
continue;
}
}
$end_time = get_microtime();
echo '<br />';
echo $end_time - $begin_time;
$begin_time = get_microtime();
for($i = 0;$i < 3000;$i ++)
{
if(in_array($a,$arr,true))
{
continue;
}
}
$end_time = get_microtime();
echo '<br />';
echo $end_time - $begin_time;
运行结果如图:
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。 而如果第三个参数 strict 的值是 false 则 in_array() 会自动给元素进行类型转换,反而增加了执行的时间。
版权归 马富天博客 所有
本文标题:《in_array()检查数组中是否存在某个值,第三个参数 strict 效率比较》
本文链接地址:http://www.mafutian.net/218.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶0
踩0