在 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 检查它是否存在于 $haystack 字符串中,从指定的 $offset 位置开始。如果有任何一个元素匹配,我们立即返回 true,表示查找成功。
使用示例:
$string = 'This string contains word "cheese" and "tea".'; $array = ['burger', 'melon', 'cheese', 'milk']; if (strposa($string, $array)) { echo 'true'; } else { echo 'false'; }
输出:
true
在此例如,该函数返回 true,因为字符串包含数组中的元素之一,即“cheese”。
以上是如何高效地检查 PHP 字符串中的多个子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!