当前位置:首页 > PHP教程 > php数组 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-22 15:08:31 浏览: 评论:0 

这篇文章主要介绍了php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比,需要的朋友可以参考下。

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

  1. <?php 
  2. $runtimenew runtime; 
  3. $runtime->start(); 
  4.     $a = 'k'
  5.     $b = array('a','b','c','d','e','f','g','h','i','j','k'); 
  6.  
  7. /* 
  8. for ($i=0; $i < 100000; $i++) { 
  9.     var_dump(in_array($a, $b));     
  10. } 
  11. */ 
  12.  
  13. /* 
  14. for ($i=0; $i < 100000; $i++) { 
  15.     foreach ($b as $key => $value) { 
  16.         if ($a == $value) { 
  17.             //echo TRUE; 
  18.             continue; 
  19.         } 
  20.     } 
  21. } 
  22. */ 
  23.  
  24. /* 
  25. for ($i=0; $i < 100000; $i++) { 
  26.     array_search($a, $b); 
  27. } 
  28. */ 
  29.  
  30. $runtime->stop(); 
  31. echo $_b
  32. echo "执行时间: ".$runtime->spent()." 毫秒"
  33.  
  34. class runtime{ 
  35.   var $StartTime = 0; 
  36.   var $StopTime = 0; 
  37.   function get_microtime(){ 
  38.     list($usec$sec) = explode(' ', microtime()); 
  39.     return ((float)$usec + (float)$sec); 
  40.   } 
  41.   function start(){ 
  42.     $this->StartTime = $this->get_microtime(); 
  43.   } 
  44.   function stop(){ 
  45.     $this->StopTime = $this->get_microtime(); 
  46.   } 
  47.   function spent(){ 
  48.     return round(($this->StopTime - $this->StartTime) * 1000, 1); 
  49.   } 
  50. ?>

Tags: in_array foreach array_search

分享到: