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