首頁 > 後端開發 > PHP問題 > php怎麼判斷某個數字是否在陣列內

php怎麼判斷某個數字是否在陣列內

PHPz
發布: 2023-04-17 17:16:37
原創
668 人瀏覽過

在 PHP 中,有許多方法可以判斷某個數字是否在陣列內,本文將詳細介紹這些方法,同時也會介紹其他一些陣列運算元。

  1. 使用in_array() 函數

in_array() 函數可以判斷值是否在數組中,其語法如下:

in_array($value, $array, $strict)
登入後複製

#其中,$ value 參數表示要尋找的值,$array 參數表示要搜尋的數組,$strict 參數表示資料類型是否嚴格匹配,可以省略,預設為false。如果找到值,則傳回 true,否則傳回 false。

範例程式碼如下:

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

if (in_array("apple", $fruits)) {
    echo "苹果在数组中存在!";
} else {
    echo "苹果不在数组中存在!";
}
登入後複製

輸出結果為:

苹果在数组中存在!
登入後複製
  1. 使用array_search() 函數

array_search() 函數可以尋找數組中指定的值,並傳回對應的鍵名,如果找不到則傳回false。其語法如下:

array_search($value, $array, $strict)
登入後複製

其中,$value 參數表示要尋找的值,$array 參數表示要搜尋的數組,$strict 參數表示資料類型是否嚴格匹配,可以省略,預設為 false。

範例程式碼如下:

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

$key = array_search("banana", $fruits);
if ($key !== false) {
    echo "香蕉在数组中的键名为:" . $key;
} else {
    echo "香蕉不在数组中存在!";
}
登入後複製

輸出結果為:

香蕉在数组中的键名为:1
登入後複製
登入後複製

如果要找出某個值是否存在,可以像下面這樣使用:

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

if (array_search("orange", $fruits) !== false) {
    echo "橘子在数组中存在!";
} else {
    echo "橘子不在数组中存在!";
}
登入後複製

輸出結果為:

橘子在数组中存在!
登入後複製
登入後複製
  1. 使用in_array() 和array_search() 同時判斷

有些情況下,既需要知道某個值在不在數組中,又需要知道它的鍵名,這時可以結合in_array() 和array_search() 兩個函數,同時判斷。

範例程式碼如下:

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

if (in_array("banana", $fruits) && ($key = array_search("banana", $fruits)) !== false) {
    echo "香蕉在数组中的键名为:" . $key;
} else {
    echo "香蕉不在数组中存在!";
}
登入後複製

輸出結果為:

香蕉在数组中的键名为:1
登入後複製
登入後複製
  1. 使用array_key_exists() 函數

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

array_key_exists($key, $array)
登入後複製

其中,$key 參數表示要尋找的鍵名,$array 參數表示要搜尋的陣列。如果找到鍵名,則傳回 true,否則傳回 false。

範例程式碼如下:

$fruits = array("apple" => 0, "banana" => 1, "orange" => 2);

if (array_key_exists("banana", $fruits)) {
    echo "香蕉在数组中存在!";
} else {
    echo "香蕉不在数组中存在!";
}
登入後複製

輸出結果為:

香蕉在数组中存在!
登入後複製
登入後複製
登入後複製
  1. 使用isset() 函數

isset() 函數可以判斷指定的鍵名是否存在於陣列中,其語法如下:

isset($array[$key])
登入後複製

其中,$key 參數表示要尋找的鍵名,$array 參數表示要搜尋的陣列。如果找到鍵名,則傳回 true,否則傳回 false。

範例程式碼如下:

$fruits = array("apple" => 0, "banana" => 1, "orange" => 2);

if (isset($fruits["orange"])) {
    echo "橘子在数组中存在!";
} else {
    echo "橘子不在数组中存在!";
}
登入後複製

輸出結果為:

橘子在数组中存在!
登入後複製
登入後複製

注意:使用isset() 函數時要注意,如果鍵名對應的值為null,也會傳回false,因此不能準確判斷某個鍵名是否存在於數組中。

  1. 使用array_diff() 函數

array_diff() 函數可以求兩個陣列差集,也就是傳回在第一個陣列中但不在後面陣列中的所有值。因此,如果將要尋找的值作為第一個數組,將原始數組作為第二個數組,查找結果為差集為空,則表示它在原始數組中存在。

範例程式碼如下:

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

if (count(array_diff(array("banana"), $fruits)) == 0) {
    echo "香蕉在数组中存在!";
} else {
    echo "香蕉不在数组中存在!";
}
登入後複製

輸出結果為:

香蕉在数组中存在!
登入後複製
登入後複製
登入後複製
  1. 使用preg_grep() 函數

preg_grep() 函數可以使用正規表示式來匹配數組元素,傳回符合的所有元素。因此,如果將要尋找的值作為正規表示式,將原始數組作為參數,並尋找結果為非空數組,則表示它在原始數組中存在。

範例程式碼如下:

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

if (count(preg_grep("/banana/", $fruits)) > 0) {
    echo "香蕉在数组中存在!";
} else {
    echo "香蕉不在数组中存在!";
}
登入後複製

輸出結果為:

香蕉在数组中存在!
登入後複製
登入後複製
登入後複製

以上就是在PHP 中判斷某個數是否在陣列內的各種方法,我們可以根據實際需求選擇適合自己的方法來操作。除此之外,還有許多其他的陣列操作函數,例如 array_merge()、array_slice()、array_reverse() 等等,我們可以根據不同的需求選擇不同的函數來使用。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板