유용한 Strpos 및 배열 기반 바늘 검색
한 문자열 내에서 여러 문자열을 검색할 때 내장된 PHP 함수 strpos는 그렇지 않을 수 있습니다. 충분하다. 이 문제를 해결하기 위해 php.net의 코드 조각은 지정된 문자열 내에서 지정된 배열의 첫 번째 문자열을 효율적으로 찾는 사용자 정의 함수 strposa를 제안합니다.
strposa 구현
function strposa(string $haystack, array $needles, int $offset = 0): bool { foreach($needles as $needle) { if(strpos($haystack, $needle, $offset) !== false) { return true; // stop on first true result } } return false; }
사용법 예
문자열을 고려하세요.
$string = 'Whis string contains word "cheese" and "tea".';
그리고 문자열 배열:
$array = ['burger', 'melon', 'cheese', 'milk'];
strposa 사용:
if (strposa($string, $array, 1)) { echo 'true'; } else { echo 'false'; }
문자열에 배열의 바늘이 포함되어 있으므로 true가 출력됩니다. "cheese".
개선된 strposa
strposa의 업데이트 버전은 첫 번째 바늘 일치 시 검색을 종료하여 성능을 최적화합니다. 이는 건초 더미에서 여러 개의 바늘을 검색할 때 효율성을 향상시킵니다.
위 내용은 strposa는 PHP의 다중 문자열 검색을 위한 strpos보다 더 효율적인 대안입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!