兩種判斷方法:1、利用count()函數(shù)比較省略第二參數(shù)和不省略第二參數(shù)時(shí),獲取的長度是否一樣即可,語法“count($arr)!=count($arr,1)”,返回值為true則是二維數(shù)組,反之則不是。2、用foreach語句循環(huán)遍歷數(shù)組,在循環(huán)體中用is_array()判斷元素值是否為數(shù)組類型,如果都不是則不是二維數(shù)組,如果有一個(gè)是則是二維數(shù)組。
前端(vue)入門到精通課程:進(jìn)入學(xué)習(xí)
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
php判斷數(shù)組是否為二維數(shù)組的兩種方法
方法1:利用count()函數(shù)來判斷
count()函數(shù)計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù)
count ( mixed $var [, int $mode ] )
$mode:為可選參數(shù),可以省略。
-
如果省略 $mode 參數(shù),或者將其設(shè)置為 COUNT_NORMAL 或者 0,count() 函數(shù)將不檢測多維數(shù)組;
-
如果 $mode 設(shè)置為 COUNT_RECURSIVE 或者 1,count() 函數(shù)將遞歸計(jì)算數(shù)組中元素的個(gè)數(shù),對(duì)于計(jì)算多維數(shù)組的元素個(gè)數(shù)尤為有用。
如果省略 $mode 參數(shù),count則不檢測多維數(shù)組,將只獲取一維的元素個(gè)數(shù)。
因此只需要比較一下省略$mode參數(shù)和不省略$mode參數(shù)時(shí),獲取的長度是否一樣即可判斷是否為二維數(shù)組。
count($arr) != count($arr, 1)
-
如果不相等(返回值為true),則是二維數(shù)組
-
如果相等(返回值為false),則不是二維數(shù)組
<?php header('content-type:text/html;charset=utf-8'); $arr = array(1,array(2,4),6); var_dump($arr); if (count($arr) != count($arr, 1)) { echo '是二維數(shù)組'; } else { echo '不是二維數(shù)組'; } ?>
方法2:foreach語句+is_array()函數(shù)
-
使用foreach語句循環(huán)遍歷數(shù)組
-
在循環(huán)體中,使用is_array()函數(shù)判斷元素值是否為數(shù)組類型,如果都不是則不是二維數(shù)組,如果有一個(gè)是則是二維數(shù)組
<?php header("content-type:text/html;charset=utf-8"); $arr = array(1,2,3,4,5); var_dump($arr); $con=0; foreach($arr as $v){ if(is_array($v)){ $con=1; break; }else{ $con=0; } } if($con==1){ echo "是二維數(shù)組"; }else{ echo "不是二維數(shù)組"; } ?>
推薦學(xué)習(xí):《PHP視頻教程》