實用的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中文網其他相關文章!