在之前的文章《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 = '年龄'; if( array_key_exists($key, $array) ){ //检测数组中是否存在该键 echo "键名 '$key' 存在于数组中!"; } ?>
輸出結果:
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 = '张三'; if( in_array($value, $array) ){ //检测数组中是否存在该键名 echo "键名 '$value' 存在于数组中!"; } ?>
輸出結果:
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 "键名 '$value' 存在于数组中!"; }else{ echo "键名 '$value' 不存在于数组中!"; } echo "<br>"; $value = 25; if( in_array($value, $array,true) ){ //检测数组中是否存在该键名 echo "键名 $value 存在于数组中!"; }else{ echo "键名 '$value' 不存在于数组中!"; } ?>
輸出結果:
且如果 $value
參數是字串,且 $type
參數設定為true,則搜尋區分大小寫。
好了就說到這裡了,有其他想知道的,可以點選這個喔。 → →php影片教學
推薦:《PHP面試題大匯總(收藏)》
以上是PHP數組學習如何檢查是否有指定鍵名/值的詳細內容。更多資訊請關注PHP中文網其他相關文章!