ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して文字列から複数の部分文字列を効率的に検索するにはどうすればよいですか?

PHP を使用して文字列から複数の部分文字列を効率的に検索するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-15 03:15:10982ブラウズ

How Can I Efficiently Search a String for Multiple Substrings Using PHP?

strpos で文字列を検索するための配列の使用

strpos 関数は、通常、文字列内の部分文字列の位置を特定するために使用されます。ただし、針の配列を使用して複数の部分文字列を同時に検索すると便利な場合があります。

問題

残念ながら、strpos の標準実装ではこれができません。針の配列を通過させます。提供された例に見られるように、これを試みると、満足のいく結果が得られません。

解決策

幸いなことに、カスタム関数を作成して機能を拡張できます。 strpos の数があり、針の配列に対応します。 PHP コミュニティからの貢献に触発された次のコード スニペットは、解決策を提供します。

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

これは、配列内のニードルの存在について文字列を検索します。ニードルが見つかった場合、関数は true を返し、それ以上の反復を停止します。

以上がPHP を使用して文字列から複数の部分文字列を効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。