首頁 >後端開發 >php教程 >php統計多維數組元素個數的方法介紹(附程式碼)

php統計多維數組元素個數的方法介紹(附程式碼)

不言
不言轉載
2019-03-23 10:33:175114瀏覽

這篇文章帶給大家的內容是關於php統計多維數組元素個數的方法介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

一般情況下,使用count可以直接統計數組的元素個數

$arr = [
'a',
'b',
];
echo count($arr);//2

但是遇到二位數組的時候,我們想統計第二層的元素個數,這時候可以使用count函數的第二個參數,
count($arr, $mode = 0);$mode(0:統計一維的所有元素,1:循環統計遍歷元素)
在$ mode=1的時候,count函數會循環統計元素的個數,如果元素$a是個數組則數量會總數會增加$a元素數加1;

$arr = [
'a' => 'b',
'c' => [
    'd',
],
];
echo count($arr, 1);//3('b',['d'],'d')

只要二維數組有規律,則可以很方便的統計二維的元素個數

$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一定要引用傳值
如果要統計三維數組的元素個數

$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;

如果要統計四維數組的元素個數

$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;

如果是統計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中文網的JavaScript視頻教程欄目!

以上是php統計多維數組元素個數的方法介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除