首頁  >  文章  >  後端開發  >  php怎麼判斷在不在數組內

php怎麼判斷在不在數組內

PHPz
PHPz原創
2023-04-26 14:21:08480瀏覽

在 PHP 中,判斷一個值是否在陣列內是常見的操作。為了實現這個目標,我們需要學習各種與陣列相關的函數和運算符,例如 in_array() 函數、array_search() 函數、in_array() 操作符以及 array_key_exists() 函數等。在本文中,我們將詳細介紹使用這些方法來判斷在 PHP 中一個值是否在陣列內。

  1. in_array() 函數

in_array() 函數在PHP 中是用來檢查一個值是否在陣列內的函數,其語法如下:

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

其中,$needle 表示需要尋找的值,$haystack 表示待查找的數組,$strict 表示是否啟用嚴格模式。

嚴格模式將比較資料類型和數值,只有在資料類型和數值完全相同時才會傳回 true。當啟用嚴格模式時,in_array() 函數將不會將數字字串"123"和整數 123 視為相等。

在 in_array() 函數中,如果找到值,函數會傳回 true,否則傳回 false。

下面是使用in_array() 函數判斷值是否在陣列內的實例:

$fruits = array("apple", "banana", "pineapple", "orange");

if (in_array("banana", $fruits)) {
    echo "找到了!";
} else {
    echo "没找到...";
}

上面的程式碼中,$fruits 陣列包含了四種水果,我們使用in_array() 函數來檢查其中是否有"banana"。由於 "banana" 存在於 $fruits 中,所以上面的程式碼會輸出 "找到了!"。

  1. array_search() 函數

array_search() 函數可以用來尋找特定值在陣列中的鍵名,其語法如下:

mixed array_search ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

相對於in_array() 函數,array_search() 函數傳回的不是true 或false,而是特定值在陣列中的鍵名。如果沒有找到,函數將傳回 false。

就像in_array() 函數一樣,array_search() 函數也可以啟用嚴格模式,不過在使用array_search() 函數時,需要將回傳值與false 進行比較,而不是使用if 語句判斷傳回結果是否為true 或false。

下面是一個使用array_search() 函數判斷值是否在數組內的實例:

$fruits = array("apple", "banana", "pineapple", "orange");

$search_result = array_search("pineapple", $fruits);

if ($search_result != false) {
    echo "找到了!键名为:" . $search_result;
} else {
    echo "没找到...";
}

在上述程式碼中,我們使用array_search() 函數來尋找"pineapple" 在$fruits 數組內的鍵名。由於 "pineapple" 是 $fruits 的第三個元素,因此鍵名為 2。因此上面的程式碼會輸出 "找到了!鍵名為:2"。

  1. in_array() 運算元

在 PHP 中,還有一個使用運算子來找出值是否在陣列內的方法,就是 in_array() 運算子。和 in_array() 函數類似,in_array() 運算元用於偵測一個值是否在陣列中,當找到該值時傳回 true,否則傳回 false。

下面是一個使用in_array() 運算元判斷值是否在陣列內的實例:

$fruits = array("apple", "banana", "pineapple", "orange");

if ("banana" in $fruits) {
    echo "找到了!";
} else {
    echo "没找到...";
}

該程式碼會輸出"找到了!",因為"banana" 存在於$fruits 陣列中。

  1. array_key_exists() 函數

array_key_exists() 函數可以用來檢查指定的鍵名是否存在於陣列中,其語法如下:

bool array_key_exists ( mixed $key , array $array )

其中,$key 表示需要尋找的鍵名,$array 表示被尋找的陣列。

和 in_array() 函數一樣,array_key_exists() 函數會傳回 true 或 false,但 array_key_exists() 函數只檢查鍵名,而不檢查鍵值。

下面是一個使用array_key_exists() 函數判斷鍵名是否在數組內的實例:

$fruits = array("apple" => "苹果", "banana" => "香蕉", "pineapple" => "菠萝", "orange" => "橘子");

if (array_key_exists("banana", $fruits)) {
    echo "找到了!中文名为:" . $fruits["banana"];
} else {
    echo "没找到...";
}

上述程式碼中,$fruits 數組包含了四個鍵值對,每個鍵名代表的是一種水果的英文名稱,而鍵值則代表了這種水果的中文名稱。我們使用 array_key_exists() 函數來檢查 $fruits 中是否有 "banana" 這個鍵名。由於 "banana" 存在於 $fruits 中,因此輸出 "找到了!中文名為:香蕉"。

總結

在PHP 中,判斷一個值是否在陣列內,可以使用in_array() 函數、array_search() 函數、in_array() 運算子以及array_key_exists() 函數等多種方法。每種方法都有其獨特的優點和局限性,我們需要根據實際情況選擇最適合自己的方法來實現判斷。

以上是php怎麼判斷在不在數組內的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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