国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

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

2024-09-04 11:46:47
字體:
來源:轉載
供稿:網友

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

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

  1. $arr = [ 
  2.  
  3. 'a'
  4.  
  5. 'b'
  6.  
  7. ]; 
  8.  
  9. echo count($arr);//2 

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

在$mode=1的時候,count函數會循環統計元素的個數,如果元素$a是個數組則數量會總數會增加$a元素數加1;

  1. $arr = [ 
  2.  
  3. 'a' => 'b'
  4.  
  5. 'c' => [ 
  6.  
  7.     'd'
  8.  
  9. ], 
  10.  
  11. ]; 
  12.  
  13. echo count($arr, 1);//3('b',['d'],'d') 

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

  1. $arr = [ 
  2.  
  3. 'a' => [ 
  4.  
  5.     'd'
  6.  
  7.     'e'
  8.  
  9. ], 
  10.  
  11. 'c' => [ 
  12.  
  13.     'd'
  14.  
  15.     'g'
  16.  
  17. ], 
  18.  
  19. ]; 
  20.  
  21. echo count($arr, 1) - count($arr);//4 

使用array_map也可以

  1. $arrCount = 0; 
  2.  
  3. $countFun = function($ause(&$arrCount) { 
  4.  
  5. $arrCount += count($a); 
  6.  
  7. return $arrCount
  8.  
  9. }; 
  10.  
  11. array_map($countFun,$arr); 
  12.  
  13. echo $arrCount

記住$arrCount一定要引用傳值,如果要統計三維數組的元素個數

  1. $arr = [ 
  2.  
  3. 'a' => [ 
  4.  
  5.    'b' => [ 
  6.  
  7.        'd'
  8.  
  9.        'e'
  10.  
  11.        'g'
  12.  
  13.    ], 
  14.  
  15. ], 
  16.  
  17. 'c' => [ 
  18.  
  19.     'd' => [ 
  20.  
  21.         'd'
  22.  
  23.         'g'
  24.  
  25.     ], 
  26.  
  27. ], 
  28.  
  29. ]; 
  30.  
  31. $arrCount = 0; 
  32.  
  33. $countFun = function($ause(&$arrCount) { 
  34.  
  35.  
  36. $arrCount += count($a, 1) - count($a); 
  37.  
  38. return $arrCount
  39.  
  40. }; 
  41.  
  42. array_map($countFun,$arr); 
  43.  
  44. echo $arrCount

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

  1. $arr = [ 
  2.  
  3. 'a' => [ 
  4.  
  5.    'b' => [ 
  6.  
  7.        'd' => [ 
  8.  
  9.            'e'
  10.  
  11.            'g'
  12.  
  13.        ], 
  14.  
  15.    ], 
  16.  
  17. ], 
  18.  
  19. 'c' => [ 
  20.  
  21.     'd' => [ 
  22.  
  23.         'd' => [ 
  24.  
  25.             'e'
  26.  
  27.             'g'
  28.  
  29.             'f' 
  30.  
  31.         ], 
  32.  
  33.     ], 
  34.  
  35. ], 
  36.  
  37. ]; 
  38.  
  39. $arrCount = 0; 
  40.  
  41. $napFun = function($ause(&$arrCount) { 
  42.  
  43.  
  44. $countFun = function($ause(&$arrCount) { 
  45.  
  46.     $arrCount += count($a, 1) - count($a); 
  47.  
  48.     return $arrCount
  49.  
  50. }; 
  51.  
  52. array_map($countFun,$a); 
  53.  
  54. return $arrCount
  55.  
  56. }; 
  57.  
  58. array_map($napFun,$arr); 
  59.  
  60. echo $arrCount

如果是統計3維或更高維度的建議使用遞歸的方法

  1. $arr = [ 
  2.  
  3. 'a' => [ 
  4.  
  5.     'b' => [ 
  6.  
  7.        'd' => [ 
  8.  
  9.            'e'
  10.  
  11.            'g'
  12.  
  13.        ], 
  14.  
  15.     ], 
  16.  
  17. ], 
  18.  
  19. 'c' => [ 
  20.  
  21.     'd' => [ 
  22.  
  23.         'd' => [ 
  24.  
  25.             'e'
  26.  
  27.             'g'
  28.  
  29.             'f' 
  30.  
  31.         ], 
  32.  
  33.     ], 
  34.  
  35. ], 
  36.  
  37. ]; 
  38.  
  39.  
  40. function arrCount($arr, &$arrCount$level){ 
  41.  
  42. if(0 === $level){ 
  43.  
  44.     $arrCount += count($arr); 
  45.  
  46.     print_r($arr); 
  47.  
  48. }else
  49.  
  50.     $level--; 
  51.  
  52.     foreach($arr as $a){ 
  53.  
  54.         arrCount($a$arrCount$level); 
  55.  
  56.     } 
  57.  
  58.  
  59.  
  60. $count = 0; 
  61.  
  62. $level = 3; 
  63.  
  64. arrCount($arr,$count,$level); 
  65.  
  66. echo $count

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 两当县| 黄山市| 呼伦贝尔市| 苗栗县| 正阳县| 浦江县| 玛纳斯县| 滨州市| 鸡泽县| 金门县| 新龙县| 琼海市| 邛崃市| 金秀| 玛多县| 密山市| 城固县| 凌源市| 嵊泗县| 郴州市| 北安市| 抚远县| 鹿邑县| 平乐县| 镇平县| 龙海市| 徐水县| 山丹县| 常熟市| 黄陵县| 天等县| 望江县| 福鼎市| 政和县| 驻马店市| 夹江县| 清徐县| 凤翔县| 苏尼特右旗| 镇赉县| 怀柔区|