이 글에서는 참고할만한 좋은 PHP 배열 요소 검색 효율을 높이는 방법을 주로 소개합니다. 관심 있는 친구들이 참고하면 좋을 것 같고, 모두에게 도움이 되길 바랍니다.
1.php in_array 메소드 설명
PHP에서는 배열 요소가 존재하는지 알아내는 것이 일반적입니다. 일반적으로 in_array 메소드를 사용합니다.
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
매개변수 설명:
needle
needle이 문자열인 경우 비교에서는 대/소문자를 구분합니다.
haystack
비교에 사용되는 배열
strict
세 번째 매개변수 strict의 값이 TRUE이면 in_array() 함수는 바늘 유형이 동일한지 여부도 확인합니다. 건초 더미에 있는
반환 값
바늘이 발견되면 TRUE을 반환하고, 그렇지 않으면 FALSE를 반환합니다.
2. in_array에서 요소를 찾는 효율성
비교된 배열 건초 더미가 크면 in_array의 효율성이 매우 낮습니다
예: in_array를 사용하여 100,000개의 요소가 있는 배열을 1000번 비교합니다
<?php $arr = array(); // 创建10万个元素的数组 for($i=0; $i<100000; $i++){ $arr[] = $i; } // 记录开始时间 $starttime = getMicrotime(); // 随机创建1000个数字使用in_array比较 for($j=0; $j<1000; $j++){ $str = mt_rand(1,99999); in_array($str, $arr); } // 记录结束时间 $endtime = getMicrotime(); echo 'run time:'.(float)(($endtime-$starttime)*1000).'ms<br>'; /** * 获取microtime * @return float */ function getMicrotime(){ list($usec, $sec) = explode(' ', microtime()); return (float)$usec + (float)$sec; } ?>
실행 시간:2003.6449432373ms
요소가 존재하는지 확인하려면 100,000개의 요소 배열에서 1000번 비교하세요. 실행 시간은 약 2초입니다.
3 . 검색 요소 효율성 방법 개선먼저
array_flip을 사용하여 키-값 교환을 수행한 다음 isset 방법을 사용하여 요소가 존재하는지 확인하면 효율성이 향상됩니다.
예: array_flip을 사용하여 키-값 교환을 먼저 수행한 다음 isset 메서드를 사용하여 100,000개 요소의 배열에서 1000회 판단, 비교
<?php $arr = array(); // 创建10万个元素的数组 for($i=0; $i<100000; $i++){ $arr[] = $i; } // 键值互换 $arr = array_flip($arr); // 记录开始时间 $starttime = getMicrotime(); // 随机创建1000个数字使用isset比较 for($j=0; $j<1000; $j++){ $str = mt_rand(1,99999); isset($arr[$str]); } // 记录结束时间 $endtime = getMicrotime(); echo 'run time:'.(float)(($endtime-$starttime)*1000).'ms<br>'; /** * 获取microtime * @return float */ function getMicrotime(){ list($usec, $sec) = explode(' ', microtime()); return (float)$usec + (float)$sec; } ?>
실행 시간:
1.2781620025635msarray_flip
및 isset을 사용하여 100,000개 요소의 배열을 1000번 비교합니다. 따라서 실행 시간은 약 1.2밀리초
입니다. 따라서 대규모 배열을 비교하려면array_flip을 사용하세요. isset 방법은 in_array보다 훨씬 더 효율적입니다.
관련 권장 사항:
php배열 요소에서 중복 항목을 빠르게 제거하는 방법
array_sum()을 사용하여 큰따옴표로 묶인
의 합계를 계산하는 방법 액세스 배열 처리 방법 요소 오류 보고
위 내용은 PHP에서 배열 요소를 찾는 효율성을 높이는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!