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

如何使用 PHP 高效地搜索字符串中的多个子字符串?

Susan Sarandon
发布: 2024-12-15 03:15:10
原创
980 人浏览过

How Can I Efficiently Search a String for Multiple Substrings Using PHP?

使用数组通过 strpos 搜索字符串

strpos 函数通常用于定位字符串中子字符串的位置。然而,有时使用针数组同时搜索多个子字符串会很有用。

问题

不幸的是,strpos 的标准实现不允许我们这样做通过一排针。尝试这样做,如提供的示例所示,将导致不令人满意的结果。

解决方案

幸运的是,可以创建自定义函数来扩展功能strpos 并容纳针阵列。以下代码片段受 PHP 社区贡献的启发,提供了一个解决方案:

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;
}
登录后复制

用法

要使用此函数,您可以传递 haystack 字符串、针数组和可选偏移量作为参数。例如:

$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
登录后复制

这将搜索字符串以查找数组中是否存在任何针。如果找到任何针,该函数将返回 true,停止进一步迭代。

以上是如何使用 PHP 高效地搜索字符串中的多个子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板