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 関数は、配列内の特定の部分文字列を検索するための強力なツールです。弦。ただし、一度に検索できるパターンは 1 つだけです。文字列にパターンのリストが含まれているかどうかを確認する必要がある場合はどうすればよいでしょうか?

次の例を考えてみましょう:

$find_letters = ['a', 'c', 'd'];
$string = 'abcdefg';
ログイン後にコピー

次を使用して文字列から文字の配列を検索しようとすると、 strpos、それは機能しません。これは、strpos が 2 番目の引数として配列ではなく文字列を想定しているためです。

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

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