配列を使用して文字列から複数のパターンを検索する方法
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 サイトの他の関連記事を参照してください。