源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-09-18 09:20 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
判断某字符是否包含与某于数组中,方法有很多,刚学习php的新手们估计偏向于使用循环来解决,对于一般的小网站来说,这种解决方案是不会出现什么大问题的。但就性能来说,这种方法不是最好的方法,下面笔者就 foreach,in_array() array_search 这三种方法来比较这三种方法在性能表现上的差异。
<?php
$runtime= new runtime;
$runtime->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);
  }
}
?>
以上程序执行时间如下图所示: [b]in_array()[/b] [img]http://files.jb51.net/file_images/article/201504/201504142239131.jpg[/img] [b]foreach[/b] [img]http://files.jb51.net/file_images/article/201504/201504142239132.jpg[/img] [b]array_search()[/b] [img]http://files.jb51.net/file_images/article/201504/201504142239133.jpg[/img] 由上可以大致看出这三种方法在性能上的表现了吧,array_search 和 in_array 表现差不多,foreach 表现最差。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部