在 PHP 中,要確定陣列中是否包含某個值非常容易。通常我們會使用 in_array 函數來檢查數組中是否存在某個值。那如果要確定數組中沒有某個值,該怎麼辦呢?
如果你從PHP 的官方文檔中查找in_array 函數,你會發現該函數的返回值為布林值(true 或false),如果在數組中找到了指定的值則傳回true,否則返回false。也就是說,如果 in_array 函數傳回 false,表示數組中沒有該值。如下範例所示:
$fruits = array("apple", "banana", "orange"); if (!in_array("pear", $fruits)) { echo "数组中没有 pear"; }
在上述範例中,我們建立了一個水果陣列 $fruits,並使用 in_array 函數來檢查陣列中是否存在 "pear" 這個值。如果不存在,則輸出「數組中沒有 pear」。
除了 in_array 函數,我們也可以使用 array_search 函數來確定陣列中是否存在某個值。 array_search 函數會在陣列中搜尋指定的值,如果找到了則傳回該值的鍵名,否則傳回 false。所以如果 array_search 函數回傳 false,就表示數組中沒有指定的值。如下範例所示:
$fruits = array("apple", "banana", "orange"); if (array_search("pear", $fruits) === false) { echo "数组中没有 pear"; }
在上述範例中,我們同樣建立了一個水果陣列 $fruits,但這次我們使用 array_search 函數來檢查陣列中是否存在 "pear" 這個值。與 in_array 函數不同的是,如果找到了指定的值,array_search 函數會傳回對應的鍵名。因此,我們需要使用三個等於號(===)來確保傳回值為false,這是因為如果傳回值為0(即陣列第一個元素的鍵名),if 語句會將其解釋為false,這樣就無法正確的判斷是否存在該值。
除了 in_array 和 array_search 之外,還有一個更簡單的方法來判斷陣列中是否包含某個值,那就是使用 array_diff 函數。 array_diff 函數用來計算數組和數組之間的差集,也就是傳回在第一個數組中出現但不在後續數組中出現的值。如果第一個數組中的所有值都在後續數組中出現,則傳回空數組,也就是說,如果 array_diff 函數傳回的結果為空,那麼表示數組中包含指定的值。反之,如果結果不為空,則表示該值不存在於數組中。如下範例所示:
$fruits = array("apple", "banana", "orange"); if (count(array_diff(array("pear"), $fruits)) > 0) { echo "数组中没有 pear"; }
在上述範例中,我們使用 array_diff 函數來比較 $fruits 陣列和一個只包含 "pear" 的陣列。如果結果不為空,則輸出「陣列中沒有 pear」。
綜上所述,我們可以使用 in_array、array_search 或 array_diff 函數來確定陣列中是否包含指定的值。其中,in_array 和 array_search 函數用於檢查數組中是否存在指定的值,而 array_diff 函數用於計算數組和數組之間的差集。我們只需要將這些函數與 if 語句結合使用,就可以輕鬆判斷數組中是否包含某個值。
以上是php怎麼確定數組中沒有某個值的詳細內容。更多資訊請關注PHP中文網其他相關文章!