php怎麼檢查陣列是否有某個鍵值對

2022-10-11 22:01:33

實現步驟:1、定義一個只包含指定鍵值對的陣列,語法「$變數名=["鍵名"=>"鍵值"];」;2、利用array_intersect_assoc()函數將該鍵值對陣列和原陣列進行比較,語法「array_intersect_assoc(原陣列,鍵值對陣列)」,會返回一個包含相同元素的交集陣列;3、判斷交集陣列是否為空陣列,語法「交集陣列===[]」,如果為空則陣列中沒有指定鍵值對。

php入門到就業線上直播課:進入學習
API 檔案、設計、偵錯、自動化測試一體化共同作業工具:

本教學操作環境: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);
?>
登入後複製

1.png

說明:

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 "陣列不為空"; 
?>
登入後複製

1.png

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 "陣列不為空"; 
?>
登入後複製

2.png

推薦學習:《》

以上就是php怎麼檢查陣列是否有某個鍵值對的詳細內容,更多請關注TW511.COM其它相關文章!