實作步驟:1、定義一個只包含指定鍵值對的數組,語法「$變數名稱=["鍵名"=>"鍵值"];」;2、利用array_intersect_assoc()函數將該鍵值對數組和原數組進行比較,語法“array_intersect_assoc(原始數組,鍵值對數組)”,會傳回一個包含相同元素的交集數組;3、判斷交集數組是否為空數組,語法“交集數組===[]”,如果為空則數組中沒有指定鍵值對。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
在PHP中,可以利用array_intersect_assoc()函數來檢查數組是否有指定鍵值對。
實作步驟:
步驟1:定義一個只包含指定鍵值對的陣列
$变量名=["键名"=>"键值"];
步驟2:利用array_intersect_assoc()函數將該鍵值對數組和原始數組進行比較
array_intersect_assoc() 函數用於比較兩個(或更多)數組的鍵名和鍵值,並傳回交集(包含相同元素的交集數組)。
array_intersect_assoc(原数组,键值对数组)
步驟3:判斷交集數組是否為空數組
交集数组===[]
如果為空,則數組中沒有指定鍵值對
如果不為空,則陣列中有指定鍵值對
實作程式碼:
<?php header('content-type:text/html;charset=utf-8'); function f($arr,$s){ $assoc=array_intersect_assoc($arr,$s); // 检查数组是否为空 if($assoc===[]) { echo "数组中没有指定键值对"; //数组为空 } else{ echo "数组中有指定键值对"; //数组不为空 } } $arr=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); echo '原数组:'; var_dump($arr); $s=["b"=>"green"]; echo '指定键值对:'; var_dump($s); f($arr,$s); ?>
說明:
array_intersect_assoc()函數--比較陣列的鍵名和鍵值
該函數比較兩個(或更多個)數組的鍵名和鍵值,並傳回交集數組,該數組包括了所有在比較的數組(array1)中,同時也在任何其他參數數組(array2 或 array3 等等)中的鍵名和鍵值。
array_intersect_assoc(array1,array2,array3...)
參數 | 描述 |
---|---|
#array1 | 必要。與其他數組進行比較的第一個數組。 |
array2 | 必要。與第一個數組進行比較的數組。 |
array3,... | 可選。與第一個數組進行比較的其他數組。 |
傳回值:傳回交集數組,該數組包含了所有在比較的數組(array1)中,同時也在任何其他參數數組(array2 或 array3 等等)中的鍵名和鍵值。
擴充知識:判斷空數組的另兩種方法
方法1:使用count( )或sizeof()函數
一個長度為0的數組我們稱之為“空數組”,空數組是一個真正的對象,只是包含元素個數為0。
因此,我們可以使用count()函數計算數組的長度,然後判斷該長度是否為0;如果為0則為空數組,反之不為空數組。
count($arr,$m)
$m:為可選參數,可省略。
如果省略$m 參數,或設定為COUNT_NORMAL 或0,count() 函數將不偵測多維數組;
如果$m 設定為COUNT_RECURSIVE 或1,count() 函數將遞歸計算數組中元素的個數,對於計算多維數組的元素個數特別有用。
<?php header("content-type:text/html;charset=utf-8"); // 声明一个空数组 $empty_array = array(); // 检查数组是否为空 if(count($empty_array) == 0) echo "数组为空"; else echo "数组不为空"; ?>
sizeof()函數是count() 函數的別名,也就是所sizeof() 函數的功能及使用方法與count() 函數完全相同。
方法2:使用empty()函數
empty() 函數用來檢查變數是否為空。
empty() 判斷變數是否被認為是空的。當一個變數並不存在,或它的值等同於 FALSE,那麼它會被認為不存在。如果變數不存在的話,empty()並不會產生警告。
說明:任何一個未初始化的變數、值為0 或false 或空字串」” 或null的變數、空數組、沒有任何屬性的對象,都會判斷為empty==true
當變數存在,且非空非零的值時傳回FALSE 否則回傳TRUE。
<?php header("content-type:text/html;charset=utf-8"); // 声明一个空数组 $array = []; // 检查数组是否为空 if(empty($array)) echo "数组为空"; else echo "数组不为空"; ?>
推薦學習:《PHP影片教學》
以上是php怎麼檢查陣列是否有某個鍵值對的詳細內容。更多資訊請關注PHP中文網其他相關文章!