>  기사  >  백엔드 개발  >  배열에_php 팁이 포함되어 있는지 확인하기 위해 PHP에서 in_array() foreach array_search()를 사용하는 성능 비교

배열에_php 팁이 포함되어 있는지 확인하기 위해 PHP에서 in_array() foreach array_search()를 사용하는 성능 비교

WBOY
WBOY원래의
2016-05-16 20:17:381267검색

특정 문자가 배열에 포함되어 있는지 확인하는 방법은 여러 가지가 있습니다. PHP를 처음 배운 초보자는 문제를 해결하기 위해 루프를 사용하는 것을 선호할 수 있습니다. 이 솔루션은 큰 문제를 일으키지 않습니다. . 그러나 성능 측면에서 이 방법은 최선의 방법은 아닙니다. 아래에서 저자는 foreach 및 in_array() array_search 세 가지 방법의 성능 차이를 비교해 보겠습니다.

<&#63;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);
  }
}
&#63;>

위 프로그램의 실행시간은 아래 그림과 같습니다.

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는 성능이 가장 나쁩니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.