首頁  >  文章  >  後端開發  >  php怎麼判斷是一維數組還是二維數組

php怎麼判斷是一維數組還是二維數組

青灯夜游
青灯夜游原創
2022-04-11 20:32:274215瀏覽

在php中,可利用count()函數來判斷,該函數能取得數組長度,如果省略第二個參數,將只取得一維的元素個數;因此只需要比較一下省略參數和不省略參數時,所取得的長度是否一樣即可,語法「count($arr)== count($arr,1)」。

php怎麼判斷是一維數組還是二維數組

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

在php中,可利用count ()函數來判斷。

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$array = array("php", 11, &#39;&#39;, 12, "PHP中文网",13,"green",2021,"mysql","14",15); 
	if (count($array) == count($array, 1)) {
	    echo &#39;是一维数组&#39;;
	} else {
	    echo &#39;是二维数组&#39;;
}
?>

php怎麼判斷是一維數組還是二維數組

#方案原則:

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怎麼判斷是一維數組還是二維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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