首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 陣列長度統計與值出現次數計算完整指南

     編輯:PHP 相關知識

PHP 陣列長度統計與值出現次數計算完整指南

陣列操作是 PHP 開發的高頻需求。本文系統整理 count()、sizeof() 取得陣列長度,以及 array_count_values() 統計各值出現次數的用法、差異與效能特性。

取得陣列元素總數

<?php
$arr = ['蘋果', '香蕉', '橘子', '葡萄', '鳳梨'];

// count():標準函式,支援 COUNT_RECURSIVE 遞迴計算多維陣列
echo count($arr);           // 5
echo count($arr, COUNT_RECURSIVE); // 多維陣列時遞迴計算

// sizeof():count() 的別名,功能完全相同
echo sizeof($arr);          // 5

// 空陣列或未定義變數回傳 0
$empty = [];
echo count($empty);         // 0
echo count($undefinedVar);  // 0 (會觸發 Notice)
?>

統計各值出現次數

<?php
$array = [4, 5, 1, 2, 3, 1, 2, 1];

// 回傳關聯陣列:鍵=原始值,值=出現次數
$ac = array_count_values($array);

/*
結果:
Array
(
    [4] => 1
    [5] => 1
    [1] => 3
    [2] => 2
    [3] => 1
)
*/

// 實用範例:找出眾數(出現最多次的值)
arsort($ac);
$mode = key($ac); // 1
echo "眾數:$mode (出現 {$ac[$mode]} 次)";
?>

函式差異與效能對照

函式用途回傳型別效能備註
count()元素總數intO(1) 陣列內部計數器,極快
sizeof()元素總數intcount() 別名,無差異
array_count_values()各值頻率統計arrayO(n) 需遍歷整個陣列

進階應用場景

  • 資料清洗:檢測重複值 array_filter(array_count_values($arr), fn($v) => $v > 1)
  • 投票統計:array_count_values($votes) 快速得票分布
  • 字串分析:array_count_values(str_split($str)) 統計字元頻率
  • 多維陣列遞迴計數:count($multiArr, COUNT_RECURSIVE) 含巢狀層級總數

常見陷阱

  1. 未定義變數:count($undef) 回傳 0 但觸發 Notice,建議先 isset() 或 is_array() 檢查
  2. 非陣列標量:count('string') 回傳 1(視為單一元素),PHP 7.2+ 會 Deprecation 警告
  3. 大小寫敏感:array_count_values() 鍵值大小寫敏感,'A' 與 'a' 分開計算

熟練掌握這些陣列統計函式,能大幅簡化資料分析、報表產生等常見業務邏輯的實作複雜度。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved