php 에서 in 사용array() foreach array_search()배열 이 포 함 될 때의 성능 대 비 를 찾 습 니 다.

어떤 문자 가 배열 에 포함 되 어 있 는 지 를 판단 하 는 방법 은 매우 많다.phop 을 막 배 운 초보 자 들 은 순환 으로 해결 하 는 경향 이 있 을 것 으로 예상 된다.일반적인 작은 사이트 에 서 는 이런 해결 방안 에 큰 문제 가 생기 지 않 을 것 이다.그러나 성능 으로 볼 때 이런 방법 은 가장 좋 은 방법 이 아니다.다음은 필자 가 foreach,inarray() 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);
  }
}
?>
위의 프로그램 실행 시간 은 다음 그림 과 같 습 니 다.
in_array()
关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比
foreach
关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比
array_search()
关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比
이 세 가지 방법 이 성능 적 으로 표현 되 었 음 을 대체적으로 알 수 있 습 니 다.arraysearch 와 inarray 의 표현 이 많 지 않 고 foreach 의 표현 이 가장 나쁘다.

좋은 웹페이지 즐겨찾기