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

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

Patricia Arquette
發布: 2024-11-25 17:33:15
原創
189 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板