微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比

判断某字符是否包含与某于数组中,方法有很多,刚学习PHP的新手们估计偏向于使用循环来解决,对于一般的小网站来说,这种解决方案是不会出现什么大问题的。但就性能来说,这种方法不是最好的方法,下面笔者就 foreach,in_array() array_search 这三种方法来比较这三种方法性能表现上的差异。

rush:PHP;"> start(); $a = 'k'; $b = array('a','b','c','d','e','f','g','h','i','j','k');

/
for ($i=0; $i < 100000; $i++) {
var_dump(in_array($a,$b));
}
/

/
for ($i=0; $i < 100000; $i++) {
foreach ($b as $key => $value) {
if ($a == $value) {
//echo TRUE;
continue;
}
}
}
/

/
for ($i=0; $i < 100000; $i++) {
array_search($a,$b);
}
/

$runtime->stop();
echo $_b;
echo "执行时间: ".$runtime->spent()." 毫秒";

class runtime{
var $startTime = 0;
var $StopTime = 0;
function get_microtime(){
list($usec,$sec) = explode(' ',microtime());
return ((float)$usec + (float)$sec);
}
function start(){
$this->StartTime = $this->get_microtime();
}
function stop(){
$this->StopTime = $this->get_microtime();
}
function spent(){
return round(($this->StopTime - $this->StartTime) * 1000,1);
}
}
?>

以上程序执行时间如下图所示:

in_array()

关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比

foreach

关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比

array_search()

关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比

由上可以大致看出这三种方法性能上的表现了吧,array_search 和 in_array 表现差不多,foreach 表现最差。

原文地址:https://www.jb51.cc/php/22120.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐