在php中,可利用count()函數來判斷,該函數能取得數組長度,如果省略第二個參數,將只取得一維的元素個數;因此只需要比較一下省略參數和不省略參數時,所取得的長度是否一樣即可,語法「count($arr)== count($arr,1)」。
本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦
在php中,可利用count ()函數來判斷。
<?php header('content-type:text/html;charset=utf-8'); $array = array("php", 11, '', 12, "PHP中文网",13,"green",2021,"mysql","14",15); if (count($array) == count($array, 1)) { echo '是一维数组'; } else { echo '是二维数组'; } ?>
#方案原則:
count ( mixed $var [, int $mode ] )
– 計算陣列中的單元數目或物件中的屬性個數
$mode:為可選參數,可以省略。
如果省略$mode 參數,或設定為COUNT_NORMAL 或0,count() 函數將不偵測多維數組;
如果$mode 設定為COUNT_RECURSIVE 或1,count() 函數會遞歸計算數組中元素的個數,對於計算多維數組的元素個數特別有用。
如果省略 $mode 參數,count則不偵測多維數組,將只取得一維的元素個數。
因此只需要比較省略$mode參數和不省略$mode參數時,所獲得的長度是否一樣即可判斷是一維數組還是二維數組。
$mode參數範例:
<?php header("Content-type:text/html;charset=utf-8"); $arr= array ("张三", 25, array("高数","PHP教程","英语"), ); //输出语句 echo "数组长度为:".count($arr,1); echo "<br>不递归检测数组,长度为:".count($arr); ?>
輸出:
数组长度为:6 不递归检测数组,长度为:3
看了上面的輸出結果,是不是感到疑惑,數組中不是只有5個元素("張三"、25、"高數"、"PHP教程"、"英語")嗎,為什麼結果顯示的數組長度不是5,而是6呢?
其實是因為,此時count()函數迴圈統計二維陣列中的所有元素,「array("高數","PHP教學","英文")」會被當作一個整體統計一次,它裡面的元素("高數"、"PHP教程"、"英語")又會被統計一次,所以最終結果為6。
推薦:《PHP影片教學》
以上是php怎麼判斷是一維數組還是二維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!