首頁  >  文章  >  後端開發  >  PHP數組學習如何檢查是否有指定鍵名/值

PHP數組學習如何檢查是否有指定鍵名/值

青灯夜游
青灯夜游原創
2021-08-02 17:12:552436瀏覽

在之前的文章《PHP數組學習之怎麼遍歷數組元素? 4種方法淺析》中,我們介紹了遍歷陣列的4種方法。今天我們來看看數組元素的鍵名和鍵值,介紹一下PHP數組中檢查是否存在指定鍵名/值的方法。

首先來看看如何偵測鍵名是否位於陣列中? 其實很簡單,我們可以利用內建函數array_key_exists()來偵測。

array_key_exists()函數可以檢查某個陣列中是否存在指定的鍵名(或索引);此函數接受兩個參數$key和$array,分別用於指定鍵名和陣列。若鍵名$key存在於陣列 $array 中則傳回 true,若未存在則傳回 false。

下面我們透過程式碼實例來具體了解一下。

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("姓名"=>"张三","年龄"=>25,"性别"=>"男");
var_dump($array);
$key = &#39;年龄&#39;;
if( array_key_exists($key, $array) ){  //检测数组中是否存在该键
    echo "键名 &#39;$key&#39; 存在于数组中!";
}
?>

輸出結果:

PHP數組學習如何檢查是否有指定鍵名/值

isset()和array_key_exists()函數之間的主要差異:

array_key_exists()函數會明確地告訴數組中是否存在鍵,而isset()只會在鍵/變數存在且不為null的情況下傳回true。另外,當陣列/變數不存在時,isset()不會呈現錯誤,而array_key_exists()會呈現錯誤。

接下來我們來看看如何偵測鍵值是否位於陣列中? 這個也簡單,我們可以利用內建函數in_array()來偵測,如果在給定陣列中找到給定值,則傳回 TRUE,否則傳回 FALSE。

in_array($value,$array,$type)可以檢查指定陣列$array中是否存在指定的值$value;而$type參數可省略。

下面我們透過程式碼實例來具體了解一下。

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("姓名"=>"张三","年龄"=>25,"性别"=>"男");
var_dump($array);
$value = &#39;张三&#39;;
if( in_array($value, $array) ){  //检测数组中是否存在该键名
    echo "键名 &#39;$value&#39; 存在于数组中!";
}
?>

輸出結果:

PHP數組學習如何檢查是否有指定鍵名/值

in_array()函數的第三個參數$type是可省略的,但如果設定值為true,則會檢查搜尋的資料與陣列的值的類型是否相同。此時,函數只有當元素存在於數組中且資料類型與給定值相同時,才會傳回 true。

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("姓名"=>"张三","年龄"=>25,"性别"=>"男");
var_dump($array);
$value = "25";
if( in_array($value, $array,true) ){  //检测数组中是否存在该键名
    echo "键名 &#39;$value&#39; 存在于数组中!";
}else{
	echo "键名 &#39;$value&#39; 不存在于数组中!";
}
echo "<br>";

$value = 25;
if( in_array($value, $array,true) ){  //检测数组中是否存在该键名
    echo "键名 $value 存在于数组中!";
}else{
	echo "键名 &#39;$value&#39; 不存在于数组中!";
}
?>

輸出結果:

PHP數組學習如何檢查是否有指定鍵名/值

且如果 $value 參數是字串,且 $type 參數設定為true,則搜尋區分大小寫。

好了就說到這裡了,有其他想知道的,可以點選這個喔。 → →php影片教學

推薦:PHP面試題大匯總(收藏)

以上是PHP數組學習如何檢查是否有指定鍵名/值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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