找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 968|回复: 0
打印 上一主题 下一主题

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

[复制链接]

3444

主题

3465

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11142
跳转到指定楼层
楼主
发表于 2018-2-14 05:46:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            判断某字符是否包含与某于数组中,方法有很多,刚学习php的新手们估计偏向于使用循环来解决,对于一般的小网站来说,这种解决方案是不会出现什么大问题的。但就性能来说,这种方法不是最好的方法,下面笔者就 foreach,in_array() array_search 这三种方法来比较这三种方法在性能表现上的差异。
start();
    $a = 'k';
    $b = array('a','b','c','d','e','f','g','h','i','j','k');
/*
for ($i=0; $i  $value) {
        if ($a == $value) {
            //echo TRUE;
            continue;
        }
    }
}
*/
/*
for ($i=0; $i 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()

foreach

array_search()

由上可以大致看出这三种方法在性能上的表现了吧,array_search 和 in_array 表现差不多,foreach 表现最差。
            
            
您可能感兴趣的文章:
  • php数组函数序列之array_key_exists() - 查找数组键名是否存在
  • php数组函数序列之in_array() 查找数组值是否存在
  • php数组函数序列之in_array() - 查找数组中是否存在指定值
  • php 操作数组(合并,拆分,追加,查找,删除等)
  • PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
  • php数组查找函数in_array()、array_search()、array_key_exists()使用实例
  • php在数组中查找指定值的方法
  • PHP查找与搜索数组元素方法总结
  • php实现在多维数组中查找特定value的方法
  • PHP的数组中提高元素查找与元素去重的效率的技巧解析
  • PHP查找数组中只出现一次的数字实现方法【查找特定元素】
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端