首页  >  文章  >  后端开发  >  对于 PHP 中的多个字符串搜索,strposa 是比 strpos 更有效的替代方案吗?

对于 PHP 中的多个字符串搜索,strposa 是比 strpos 更有效的替代方案吗?

Patricia Arquette
Patricia Arquette原创
2024-11-25 17:33:15111浏览

Is strposa a More Efficient Alternative to strpos for Multiple String Searches in PHP?

实用的 Strpos 和基于数组的针式搜索

在一个字符串中搜索多个字符串时,内置的 PHP 函数 strpos 可能不会够了。为了解决这个问题,php.net 中的一个片段提出了一个自定义函数 strposa,它可以有效地查找指定字符串中给定数组中任何字符串的第一次出现。

strposa 的实现

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  = 'Whis string contains word "cheese" and "tea".';

和字符串数组:

$array  = ['burger', 'melon', 'cheese', 'milk'];

使用 strposa:

if (strposa($string, $array, 1)) {
    echo 'true';
} else {
    echo 'false';
}

这将输出 true,因为字符串包含数组中的一根针,即“奶酪”。

改进的 strposa

strposa 的更新版本通过在第一个针匹配时终止搜索来优化性能。这提高了大海捞针时的效率。

以上是对于 PHP 中的多个字符串搜索,strposa 是比 strpos 更有效的替代方案吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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