PHP에서 배열을 사용하여 문자열에서 여러 패턴을 효율적으로 검색하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-25 17:05:16
원래의
389명이 탐색했습니다.

How to Efficiently Search a String for Multiple Patterns Using an Array in PHP?

배열을 사용하여 문자열에서 여러 패턴을 검색하는 방법

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

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