一般情况下,使用count可以直接统计数组中的元素个数$arr=['a','b',];echocount($arr);//2但是遇到两位数的数组时,我们要要统计第二层元素的个数,这时候,可以使用count函数的第二个参数,count($arr,$mode=0);$mode(0:统计一维所有元素,1:循环遍历元素)当$mode=1时,count函数会统计一个循环的元素个数。如果元素$a是一个数组,则总数会增加。$a元素个数加1;$arr=['a'=>'b','c'=>['d',],];echocount($arr,1);//3('b',['d'],'d')只要二维数组是规则的,就可以很方便的统计二维元素的个数$arr=['a'=>['d','e',],'c'=>['d','g',],];echocount($arr,1)-count($arr);//4也可以用array_map$arrCount=0;$countFun=function($a)使用(&$arrCount){$arrCount+=count($a);返回$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$计数;如果要统计一个四维数组的元素个数$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);返回$arrCount;};array_map($countFun,$a);返回$arrCount;};array_map($napFun,$arr);echo$arrCount;如果是3D统计或者更高维度建议使用递归的方式$arr=['a'=>['b'=>['d'=>['e','g',],],],'c'=>['d'=>['d'=>['e','g','f'],],],];函数arrCount($arr,&$arrCount,$level){if(0===$level){$arrCount+=count($arr);print_r($arr);}else{$level--;foreach($arras$a){arrCount($a,$arrCount,$level);}}}$计数=0;$水平=3;arrCount($arr,$count,$level);回声$计数;
