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