首頁  >  文章  >  後端開發  >  php判斷資料是否存在數組中

php判斷資料是否存在數組中

PHPz
PHPz原創
2023-05-19 16:32:09669瀏覽

在php中,常常需要判斷一個資料是否存在數組中。此時可以採用以下幾種方法:

1.使用in_array函數:

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確實在數組中,所以輸出「存在」。

2.使用array_search函數:

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。

3.使用in_array和array_search的自訂函數:

有時候我們需要根據不同的需求,自訂判斷資料是否存在於陣列中的函數。例如,我們想判斷一個字串是否是另一個字串的子字串(即是否包含),可以使用以下程式碼:

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

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