实用的 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中文网其他相关文章!