在php中,常常需要判斷一個資料是否存在數組中。此時可以採用以下幾種方法:
in_array函數是php中常用用於判斷一個資料是否存在於數組中的函數,其函數原型為:
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
其中,needle參數表示要尋找的值,haystack表示尋找的陣列,strict表示是否使用嚴格模式進行比較。例如:
$arr = array(1, 2, 3, 'a', 'b', 'c'); if (in_array(1, $arr)) { echo '存在'; } else { echo '不存在'; }
在上述程式碼中,先定義一個陣列$arr,然後再使用in_array函數判斷1是否在其中。由於1確實在數組中,所以輸出「存在」。
array_search函數是另一個判斷資料是否存在於陣列中的函數,其函數原型為:
mixed array_search ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
其中,needle參數表示要找的值,haystack表示尋找的陣列,strict表示是否使用嚴格模式進行比較。如果找到了,函數會傳回該元素在陣列中的鍵名,否則傳回false。例如:
$arr = array(1, 2, 3, 'a', 'b', 'c'); $key = array_search('a', $arr); if ($key !== false) { echo '存在于数组中,键名为:' . $key; } else { echo '不存在'; }
在上述程式碼中,定義一個陣列$arr,然後使用array_search函數尋找陣列中的值‘a’,如果存在則傳回鍵名,否則傳回false。
有時候我們需要根據不同的需求,自訂判斷資料是否存在於陣列中的函數。例如,我們想判斷一個字串是否是另一個字串的子字串(即是否包含),可以使用以下程式碼:
function is_substr($str, $substr) { return strpos($str, $substr) !== false; } $str = 'hello world'; $substr = 'world'; if (is_substr($str, $substr)) { echo '包含'; } else { echo '不包含'; }
在上述程式碼中,定義了一個自訂函數is_substr來判斷一個字符串是否是另一個字串的子字串,其中使用了php內建的函數strpos。該函數傳回字串在另一個字串中的位置,如果不存在則傳回false。如果找到了,即位置非負,函數傳回true,否則回傳false。
綜上所述,php判斷資料是否存在陣列中,in_array和array_search函數是最常用最方便的。如果有特殊需求,可以自訂對應的函數。
以上是php判斷資料是否存在數組中的詳細內容。更多資訊請關注PHP中文網其他相關文章!