>백엔드 개발 >PHP 튜토리얼 >PHP 문자열에서 여러 하위 문자열을 효율적으로 확인하려면 어떻게 해야 합니까?

PHP 문자열에서 여러 하위 문자열을 효율적으로 확인하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-27 13:17:16793검색

How Can I Efficiently Check for Multiple Substrings in a PHP String?

strpos와 배열을 사용하여 여러 하위 문자열 찾기

PHP에서 strpos는 주어진 문자열 내에서 하위 문자열이 처음 나타나는 것을 검색하는 데 일반적으로 사용되는 함수입니다. 단일 하위 문자열을 찾을 수 있지만 여러 하위 문자열을 동시에 검색해야 하는 상황이 있을 수 있습니다.

특정 예에서는 $find_letters 배열의 모든 요소가 내부에 있는지 확인하려고 합니다. $string 변수. 그러나 배열을 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 the first true result
        }
    }

    return false;
}

이 함수에서는 $needle 배열의 각 요소를 반복합니다. 각 요소에 대해 strpos를 사용하여 지정된 $offset 위치부터 $haystack 문자열 내에 존재하는지 확인합니다. 일치하는 요소가 있으면 즉시 true를 반환하여 검색에 성공했음을 나타냅니다.

사용 예:

$string = 'This string contains word "cheese" and "tea".';
$array = ['burger', 'melon', 'cheese', 'milk'];

if (strposa($string, $array)) {
    echo 'true';
} else {
    echo 'false';
}

출력:

true

여기서 예를 들어, 문자열에 배열 요소 중 하나, 즉 "치즈"가 포함되어 있으므로 함수는 true를 반환합니다.

위 내용은 PHP 문자열에서 여러 하위 문자열을 효율적으로 확인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.