首頁 >後端開發 >PHP問題 >php怎麼判斷一個陣列是否為索引數組

php怎麼判斷一個陣列是否為索引數組

青灯夜游
青灯夜游原創
2022-09-20 20:23:291745瀏覽

判斷步驟:1、用array_keys()取得原始數組的全部鍵名,語法「array_keys(數組)」;2、用array_filter()過濾數組,語法「function f($v){return (is_string($v));}$res=array_filter($keys,"f");”,會傳回一個包含字串元素的過濾數組;3、判斷過濾數組是否為空數組,如果為空則數組是索引數組。

php怎麼判斷一個陣列是否為索引數組

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

在php中,索引陣列的下標(鍵名)由數字組成,如果一個數組中有一個鍵名不是數字,那麼這個數組就是關聯數組(不是索引數組)。

因此只需要判斷數組的鍵名是否都為數字,即可判斷數組是否為索引數組。

實作步驟:

步驟1:使用array_keys()函數取得原始陣列的全部鍵名

array_keys( ) 函數傳回包含陣列中所有鍵名的一個新陣列。

array_keys(array,value,strict)
參數 描述
#array 必要。規定數組。
value 可選。您可以指定鍵值,然後只有該鍵值對應的鍵名會被傳回。
strict 可選。與 value 參數一起使用。可能的值:
  • true - 傳回帶有​​指定鍵值的鍵名。依賴類型,數字 5 與字串 "5" 是不同的。
  • false - 預設值。不依賴類型,數字 5 與字串 "5" 是相同的。
<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$arr=array("r"=>"red",2,3,"hello",5,6);
var_dump($arr);
$keys=array_keys($arr);
var_dump($keys);
?>

php怎麼判斷一個陣列是否為索引數組

#步驟2:使用array_filter()和is_string()函數過濾數組,返回鍵名數組中的字串元素

function f($v){
	 return(is_string($v));
}
$res=array_filter($keys,"f");
var_dump($res);

php怎麼判斷一個陣列是否為索引數組

會傳回一個包含字串元素的過濾陣列

步驟3:判斷過濾數組是否為空數組

$res==[]
  • 如果為空,則數組是索引數組

  • 如果不為空,則數組不是索引數組,是關聯數組

實作程式碼:

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
function f($v){
		 return(is_string($v));
}
function fun($arr){
	$keys=array_keys($arr);
	
	$res=array_filter($keys,"f");
	if($res==[]){
		echo "数组是索引数组<br>";
	}else{
		echo "数组不是索引数组,是关联数组<br>";
	}
}


$arr=array("r"=>"red",2,3,"hello",5,6);
var_dump($arr);
fun($arr);
$arr=array(1,2,3,"hello",5,6);
var_dump($arr);
fun($arr);
?>

php怎麼判斷一個陣列是否為索引數組

推薦學習:《PHP影片教學

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

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