首頁 >後端開發 >PHP問題 >php怎麼判斷是否為關聯數組

php怎麼判斷是否為關聯數組

青灯夜游
青灯夜游原創
2022-05-17 20:14:162403瀏覽

判斷步驟:1、使用array_keys()取得數組的全部鍵名,語法“array_keys($arr)”,會傳回一個包含全部鍵名的鍵名數組;2、使用foreach遍歷鍵名數組,在循環體中,判斷是否有數組元素為字串類型,只要有一個是則為關聯數組,語法“foreach($k as $v){if(is_string($v)){echo "是關聯數組";}}」。

php怎麼判斷是否為關聯數組

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

什麼是關聯數組

關聯數組的下標(鍵名)由數值和字串混合的形式組成,如果一個數組中有一個鍵名不是數字,那麼這個數組就是關聯數組。

php怎麼判斷是否為關聯陣列

#1、使用array_keys()取得陣列的鍵名稱

#array_key() 函數可以取得數組中的部分或所有鍵名,傳回一個鍵名數組

<?php
header("Content-type:text/html;charset=utf-8");
$arr=array(1=>"1","a"=>"red",2=>"2","b"=>"green","c"=>"blue");
var_dump($arr);
$keys=array_keys($arr);
var_dump($keys);
?>

php怎麼判斷是否為關聯數組

2、使用foreach遍歷鍵名數組

在循環體中,判斷是否有數組元素為字串

  • #只要有一個為字串則數組為關聯數組

foreach($keys as $v){
	if(is_string($v)){
		echo "是关联数组";
		break;
	}
}

php怎麼判斷是否為關聯數組

改進:判斷數組是關聯數組,還是索引數組

$keys=array_keys($arr);
$b="";
foreach($keys as $v){
	if(!is_string($v)){
		$b=false;
	}else{
		$b=true;
		break;
	}
}
if($b){
	echo "是关联数组";
}else{
	echo "不是关联数组,是索引数组";
}

如果檢測的是以下陣列:

$arr=array(1,2,3,4,5);

則會輸出:

php怎麼判斷是否為關聯數組

#推薦學習:《PHP影片教學

以上是php怎麼判斷是否為關聯數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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