方法:1、使用“array_keys($arr)”獲取數組鍵名,返回一個鍵名數組;2、遍歷鍵名數組,判斷是否有數組元素為字符串,語法“foreach($k as $v){if(is_string($v)){echo "是關聯數組";}}”。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.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); ?>
2、使用foreach遍歷鍵名數組
在循環(huán)體中,判斷是否有數組元素為字符串
-
只要有一個為字符串則數組為關聯數組
foreach($keys as $v){ if(is_string($v)){ echo "是關聯數組"; break; } }
改進一下:判斷數組是關聯數組,還是索引數組
$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視頻教程》