Array_sum() 是 php 中用于計算一維數組元素總和的內置函數,支持整數和浮點數,例如 $array = [10, 20, 30]; array_sum($array) 返回 60;1. 該函數不支持多維數組,遇到非數值元素會忽略或轉換為 0;2. 若數組包含字符串形式的數字如 ’20’,會被轉為數值處理,但非數字字符串如 ‘hello’ 會被轉為 0;3. 處理二維數組時需結合 array_column() 提取字段后再求和;4. 也可使用循環手動累加以實現更復雜的邏輯判斷。
在 PHP 中,如果你需要對數據進行累加操作,比如統計一組數字的總和,或者對數組中的元素進行求和,PHP 提供了非常方便的函數來實現。最常用的就是 array_sum() 函數。
array_sum() 是什么?
array_sum() 是 PHP 內置的一個數組處理函數,專門用來計算數組中所有值的總和。它適用于一維數組,如果數組中包含的是數字(整數或浮點數),那么這個函數就能直接返回它們的總和。
基本用法:
立即學習“PHP免費學習筆記(深入)”;
$array = [10, 20, 30]; $sum = array_sum($array); echo $sum; // 輸出 60
這個函數非常實用,尤其在你需要快速計算購物車總價、成績總分等場景下,可以大大簡化代碼。
使用 array_sum() 的注意事項
雖然 array_sum() 很好用,但在使用過程中也有些細節需要注意:
- 只支持一維數組:如果你傳入的是多維數組(嵌套數組),它不會自動遞歸求和,而是會忽略非數值元素或報錯。
- 字符串會被轉換成 0:如果數組中包含字符串形式的數字,比如 ’10’,它們會被當作數字處理;但如果字符串是非數字的(如 ‘abc’),則會被轉為 0。
例如:
$data = [10, '20', 'hello']; echo array_sum($data); // 輸出 30
所以,在實際開發中,建議先確保數組里的內容是預期的數據類型,避免出現意外結果。
如果數組是二維或多維怎么辦?
對于二維數組,比如你要計算一個訂單中多個商品的價格總和,每個商品是一個子數組,這時候就不能直接用 array_sum() 了,需要結合其他函數來實現。
舉個例子:
$orders = [ ['price' => 100], ['price' => 200], ['price' => 300] ]; $total = array_sum(array_column($orders, 'price')); echo $total; // 輸出 600
這里我們用了 array_column() 來提取出所有 price 字段,再傳給 array_sum() 求和。這種方法在處理結構化數據時非常常見。
其他方式實現數據累加
除了 array_sum(),你也可以用循環手動累加,比如:
$nums = [5, 10, 15]; $sum = 0; foreach ($nums as $num) { $sum += $num; } echo $sum; // 輸出 30
這種方式更靈活,適合在累加過程中加入判斷邏輯,比如只累加正數、排除某些特定值等。
基本上就這些。用 array_sum() 可以快速完成大多數數組求和任務,遇到復雜結構時再配合其他函數一起使用。不復雜但容易忽略的是數據類型的處理,特別是在從數據庫或用戶輸入獲取數據時,最好做一次類型檢查或轉換。