首页 >后端开发 >php教程 >如何高效地检查 PHP 字符串中的多个子字符串?

如何高效地检查 PHP 字符串中的多个子字符串?

Linda Hamilton
Linda Hamilton原创
2024-11-27 13:17:16774浏览

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 检查它是否存在于 $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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn