首頁 >後端開發 >php教程 >如何有效率地檢查 PHP 字串中的多個子字串?

如何有效率地檢查 PHP 字串中的多個子字串?

Linda Hamilton
Linda Hamilton原創
2024-11-27 13:17:16793瀏覽

How Can I Efficiently Check for Multiple Substrings in a PHP String?

使用strpos 和陣列來尋找多個子字串

在PHP 中,strpos 是常用的函數,用於搜尋給定字串中第一次出現的子字串。雖然它能夠查找單個子字串,但在某些情況下您可能需要同時搜尋多個子字串。

在您的特定範例中,您想要檢查 $find_letters 陣列中的所有元素是否存在於$string 變數。但是,直接將數組作為指標傳遞給 strpos 是行不通的,因為它需要單一值。

要解決這個問題,您可以利用自訂函數來執行您需要的任務。以下是作為答案提供的函數的更新版本:

function strposa(string $haystack, array $needles, int $offset = 0): bool
{
    foreach ($needles as $needle) {
        if (strpos($haystack, $needle, $offset) !== false) {
            return true; // Stop on the first true result
        }
    }

    return false;
}

在此函數中,我們迭代 $needles 數組中的每個元素。對於每個元素,我們使用 strpos 檢查它是否存在於 $haystack 字串中,從指定的 $offset 位置開始。如果有任何一個元素匹配,我們立即返回 true,表示查找成功。

使用範例:

$string = 'This string contains word "cheese" and "tea".';
$array = ['burger', 'melon', 'cheese', 'milk'];

if (strposa($string, $array)) {
    echo 'true';
} else {
    echo 'false';
}

輸出:

true

在此例如,函數傳回true,因為字串包含陣列中的元素之一,即「cheese」。

以上是如何有效率地檢查 PHP 字串中的多個子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn