배열을 사용하여 문자열에서 여러 패턴을 검색하는 방법
strpos 함수는 문자열 내에서 특정 하위 문자열을 검색하는 강력한 도구입니다. 끈. 그러나 한 번에 하나의 패턴만 검색할 수 있습니다. 문자열에 패턴 목록이 포함되어 있는지 확인해야 한다면 어떻게 해야 합니까?
다음 예를 고려하십시오.
$find_letters = ['a', 'c', 'd']; $string = 'abcdefg';
다음을 사용하여 문자열에서 문자 배열을 검색하려고 하면 strpos, 작동하지 않습니다. 이는 strpos가 배열이 아닌 문자열을 두 번째 인수로 기대하기 때문입니다.
strpos를 사용하여 배열 검색용 함수 만들기
이 문제를 해결하려면 다음을 만들 수 있습니다. 검색할 패턴 배열과 문자열을 허용하는 사용자 정의 함수입니다. 이 함수는 각 패턴에 대해 strpos를 호출하여 배열을 반복하고 발견된 첫 번째 일치 위치를 반환합니다.
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 = 'This string contains word "cheese" and "tea".'; $array = ['burger', 'melon', 'cheese', 'milk']; var_dump(strposa($string, $array)); // will return true, since "cheese" has been found
결론
strpos 기능을 래핑하는 사용자 정의 함수를 생성함으로써 이제 효율적으로 문자열을 검색할 수 있습니다. 배열을 사용하는 여러 패턴의 경우. 이 기술은 사용자 입력의 유효성을 검사하거나 텍스트 분석을 수행하는 등 다양한 시나리오에서 유용할 수 있습니다.
위 내용은 PHP에서 배열을 사용하여 문자열에서 여러 패턴을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!