本篇文章給大家帶來的內容是關于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;
新聞熱點
疑難解答