首頁 >後端開發 >PHP問題 >php怎麼對數組某列求和

php怎麼對數組某列求和

PHPz
PHPz原創
2023-04-25 09:05:45777瀏覽

在 PHP 程式設計中,數組是一種非常常用的數據類型,可以用來儲存一系列數據,而對於數組中的一列數據求和常常是需要的操作之一。下面我們就來介紹 PHP 中如何對數組某列求和。

在 PHP 中,可以使用 array_sum() 函數來對陣列中的所有元素求和,該函數接受一個陣列作為參數,並傳回數組中所有元素的總和。例如:

$numbers = array(1, 2, 3, 4, 5);
$sum = array_sum($numbers);
echo "数组元素总和为:$sum";

以上程式碼將輸出:

数组元素总和为:15

但是,如果我們需要對陣列中的某一列資料求和呢? PHP 並沒有內建的函數來直接實作這個功能,我們需要自己寫程式碼實作。

例如,我們有一個二維數組$data,其中包含若干行數據,每一行數據都具有相同的數據結構,如下所示:

$data = array(
    array('id' => 1, 'name' => 'Tom', 'score' => 80),
    array('id' => 2, 'name' => 'Jack', 'score' => 90),
    array('id' => 3, 'name' => 'Mary', 'score' => 85),
);

現在,我們需要對$ data 數組中的'score' 列資料求和,可以按照以下步驟實現:

  1. #定義一個變數$sum,並初始化為0,用於保存求和結果:
$sum = 0;
  1. 遍歷數組$data,依序取出每一行數據,並將該行資料中'score' 列的值累加到$sum 變數中:
foreach ($data as $row) {
    $sum += $row['score'];
}
  1. 最後,$sum 變數中保存的就是'score' 列資料的總和。

完整程式碼如下:

$data = array(
    array('id' => 1, 'name' => 'Tom', 'score' => 80),
    array('id' => 2, 'name' => 'Jack', 'score' => 90),
    array('id' => 3, 'name' => 'Mary', 'score' => 85),
);

$sum = 0;

foreach ($data as $row) {
    $sum += $row['score'];
}

echo "score 列数据总和为:$sum";

以上程式碼將輸出:

score 列数据总和为:255

上述演算法的時間複雜度為O(n),其中n 表示陣列$data的行數,是一種比較有效率的求和方法。

除了上述方法外,還可以使用 array_column() 函數來取得數組中某列數據,然後再使用 array_sum() 函數對該列資料求和。例如:

$data = array(
    array('id' => 1, 'name' => 'Tom', 'score' => 80),
    array('id' => 2, 'name' => 'Jack', 'score' => 90),
    array('id' => 3, 'name' => 'Mary', 'score' => 85),
);

$scores = array_column($data, 'score');
$sum = array_sum($scores);

echo "score 列数据总和为:$sum";

以上程式碼會輸出:

score 列数据总和为:255

使用array_column() 函數取得陣列中某列資料的優點在於可以靈活地選擇需要取得的列,也可以配合其他陣列函數來進行更複雜的操作。

綜上所述,PHP 中對數組某列求和可以透過遍歷數組並累積該列資料的方法來實現,也可以使用array_column() 函數先取得該列數據,再使用array_sum( ) 函數來求和。要根據具體情況選擇最適合的方法。

以上是php怎麼對數組某列求和的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn