小編給大家分享一下php如何統(tǒng)計多維數(shù)組元素個數(shù) ,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)勐海,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
一般情況下,使用count可以直接統(tǒng)計數(shù)組的元素個數(shù)
$arr = [ 'a', 'b', ]; echo count($arr);//2
但是遇到二位數(shù)組的時候,我們想統(tǒng)計第二層的元素個數(shù),這個時候可以使用count函數(shù)的第二個參數(shù),
count($arr, $mode = 0);$mode(0:統(tǒng)計一維的所有元素,1:循環(huán)統(tǒng)計遍歷元素)
在$mode=1的時候,count函數(shù)會循環(huán)統(tǒng)計元素的個數(shù),如果元素$a是個數(shù)組則數(shù)量會總數(shù)會增加$a元素數(shù)加1;
$arr = [ 'a' => 'b', 'c' => [ 'd', ], ]; echo count($arr, 1);//3('b',['d'],'d')
只要二維數(shù)組有規(guī)律,則可以很方便的統(tǒng)計二維的元素個數(shù)
$arr = [ 'a' => [ 'd', 'e', ], 'c' => [ 'd', 'g', ], ]; echo count($arr, 1) - count($arr);//4
使用array_map也可以
$arrCount = 0; $countFun = function($a) use(&$arrCount) { $arrCount += count($a); return $arrCount; }; array_map($countFun,$arr); echo $arrCount;
記住$arrCount一定要引用傳值
如果要統(tǒng)計三維數(shù)組的元素個數(shù)
$arr = [ 'a' => [ 'b' => [ 'd', 'e', 'g', ], ], 'c' => [ 'd' => [ 'd', 'g', ], ], ]; $arrCount = 0; $countFun = function($a) use(&$arrCount) {
$arrCount += count($a, 1) - count($a); return $arrCount; }; array_map($countFun,$arr); echo $arrCount;
如果要統(tǒng)計四維數(shù)組的元素個數(shù)
$arr = [ 'a' => [ 'b' => [ 'd' => [ 'e', 'g', ], ], ], 'c' => [ 'd' => [ 'd' => [ 'e', 'g', 'f' ], ], ], ]; $arrCount = 0; $napFun = function($a) use(&$arrCount) {
$countFun = function($a) use(&$arrCount) { $arrCount += count($a, 1) - count($a); return $arrCount; }; array_map($countFun,$a); return $arrCount; }; array_map($napFun,$arr); echo $arrCount;
如果是統(tǒng)計3維或更高維度的建議使用遞歸的方法
$arr = [ 'a' => [ 'b' => [ 'd' => [ 'e', 'g', ], ], ], 'c' => [ 'd' => [ 'd' => [ 'e', 'g', 'f' ], ], ], ];
function arrCount($arr, &$arrCount, $level){ if(0 === $level){ $arrCount += count($arr); print_r($arr); }else{ $level--; foreach($arr as $a){ arrCount($a, $arrCount, $level); } } } $count = 0; $level = 3; arrCount($arr,$count,$level); echo $count;
以上是php如何統(tǒng)計多維數(shù)組元素個數(shù) 的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!