ホームページ >バックエンド開発 >PHPチュートリアル >strposa は、PHP での複数の文字列検索における strpos のより効率的な代替手段ですか?

strposa は、PHP での複数の文字列検索における strpos のより効率的な代替手段ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-25 17:33:15184ブラウズ

Is strposa a More Efficient Alternative to strpos for Multiple String Searches in PHP?

実用的な 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 中国語 Web サイトの他の関連記事を参照してください。

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