배열 요소를 확인하는 데 'isset'이 'in_array'보다 더 빠릅니까?

Susan Sarandon
풀어 주다: 2024-11-11 11:02:03
원래의
423명이 탐색했습니다.

Is `isset` Faster than `in_array` for Checking Array Elements?

속도 비교: in_array 대 isset

대규모 배열로 작업할 때는 코드 성능을 최적화하는 것이 중요합니다. in_array 함수와 isset 구문 중 어느 것이 더 빠릅니까?

in_array:

이 함수는 선형 검색을 수행하여 배열을 반복하여 일치 항목을 찾습니다. 시간 복잡도는 O(n)입니다. 여기서 n은 배열의 크기입니다.

isset:

isset은 반면에 해시를 사용합니다. 연관 배열에 특정 키가 존재하는지 확인하기 위해 검색합니다. 이는 O(1)의 일정한 시간 복잡도로 in_array보다 훨씬 빠릅니다.

성능 테스트:

이 속도 차이를 입증하기 위해 다음을 수행할 수 있습니다. 벤치마크:

$a = array();
for ($i = 0; $i < 10000; ++$i) {
    $v = rand(1, 1000000);
    $a[$v] = $v;
}

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    isset($a[rand(1, 1000000)]);
}

$total_time = microtime(true) - $start;
echo "isset: " . number_format($total_time, 6) . PHP_EOL;

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    in_array(rand(1, 1000000), $a);
}

$total_time = microtime(true) - $start;
echo "in_array: " . number_format($total_time, 6) . PHP_EOL;
로그인 후 복사

결과:

테스트 결과에 따르면 isset은 in_array보다 훨씬 빠르며, 이는 지속적인 시간 복잡도의 장점을 보여줍니다.

결론:

존재를 확인할 때 배열의 요소 중 isset은 더 빠른 성능으로 인해 선호되는 선택입니다. 그러나 요소의 순서가 중요한 경우에는 요소 순서를 유지하므로 in_array를 사용해야 합니다.

위 내용은 배열 요소를 확인하는 데 'isset'이 'in_array'보다 더 빠릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿