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

PHP 文字列内の複数の部分文字列を効率的にチェックするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-27 13:17:16
オリジナル
824 人が閲覧しました

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;
}
ログイン後にコピー

この関数では、$needles 配列の各要素を反復処理します。各要素について、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
ログイン後にコピー

この例ではたとえば、文字列には配列内の要素の 1 つである「cheese」が含まれているため、この関数は true を返します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート