속도 비교: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!