国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北川| 平谷区| 渝北区| 宝丰县| 和静县| 北宁市| 平陆县| 安岳县| 上高县| 全州县| 临西县| 蓝山县| 高阳县| 合阳县| 许昌市| 海南省| 白玉县| 南丹县| 保康县| 林西县| 武汉市| 梁平县| 锦州市| 井研县| 长春市| 和政县| 甘泉县| 伊川县| 安福县| 伊宁县| 武清区| 南安市| 鹤山市| 司法| 深州市| 阳朔县| 手机| 卢氏县| 岳阳县| 太仓市| 河池市|