判斷步驟:1、用array_keys()取得原始數組的全部鍵名,語法「array_keys(數組)」;2、用array_filter()過濾數組,語法「function f($v){return (is_string($v));}$res=array_filter($keys,"f");”,會傳回一個包含字串元素的過濾數組;3、判斷過濾數組是否為空數組,如果為空則數組是索引數組。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
在php中,索引陣列的下標(鍵名)由數字組成,如果一個數組中有一個鍵名不是數字,那麼這個數組就是關聯數組(不是索引數組)。
因此只需要判斷數組的鍵名是否都為數字,即可判斷數組是否為索引數組。
實作步驟:
步驟1:使用array_keys()函數取得原始陣列的全部鍵名
array_keys( ) 函數傳回包含陣列中所有鍵名的一個新陣列。
array_keys(array,value,strict)
參數 | 描述 |
---|---|
#array | 必要。規定數組。 |
value | 可選。您可以指定鍵值,然後只有該鍵值對應的鍵名會被傳回。 |
strict | 可選。與 value 參數一起使用。可能的值:
|
<?php header('content-type:text/html;charset=utf-8'); $arr=array("r"=>"red",2,3,"hello",5,6); var_dump($arr); $keys=array_keys($arr); var_dump($keys); ?>
#步驟2:使用array_filter()和is_string()函數過濾數組,返回鍵名數組中的字串元素
function f($v){ return(is_string($v)); } $res=array_filter($keys,"f"); var_dump($res);
會傳回一個包含字串元素的過濾陣列
步驟3:判斷過濾數組是否為空數組
$res==[]
如果為空,則數組是索引數組
如果不為空,則數組不是索引數組,是關聯數組
實作程式碼:
<?php header('content-type:text/html;charset=utf-8'); 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中文網其他相關文章!