首頁  >  文章  >  後端開發  >  對於 PHP 中的多個字串搜索,strposa 是比 strpos 更有效的替代方案嗎?

對於 PHP 中的多個字串搜索,strposa 是比 strpos 更有效的替代方案嗎?

Patricia Arquette
Patricia Arquette原創
2024-11-25 17:33:15110瀏覽

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