首頁 > 資料庫 > mysql教程 > 如何有效地對多維數組的特定列中的值求和?

如何有效地對多維數組的特定列中的值求和?

Linda Hamilton
發布: 2024-12-15 13:50:54
原創
144 人瀏覽過

How to Efficiently Sum Values in a Specific Column of a Multidimensional Array?

對多維數組列中的值求和

多維數組在對特定列求和時提出了挑戰。考慮給出的範例陣列:

$arr = [
    [0] => ['f_count' => 1, 'uid' => 105],
    [1] => ['f_count' => 0, 'uid' => 106],
    [2] => ['f_count' => 2, 'uid' => 107],
    [3] => ['f_count' => 0, 'uid' => 108],
    [4] => ['f_count' => 1, 'uid' => 109],
    [5] => ['f_count' => 0, 'uid' => 110],
    [6] => ['f_count' => 3, 'uid' => 111]
];
登入後複製

所需的輸出是 7,它是 f_count 欄位的總和。

沒有Foreach 循環的解決方案

PHP 5.5 及更高版本提供了兩個函數來簡化此操作任務:

  • array_column: 從陣列中提取特定列。
  • array_sum: 對陣列中的值求和。

使用這些函數,我們無需foreach即可獲得總和循環:

$f_count_column = array_column($arr, 'f_count');
$sum = array_sum($f_count_column);
登入後複製

替代方法:重建查詢

我們可以重構查詢以傳回一維數組,而不是檢索多維數組:

$query = "SELECT SUM(f_count) AS total_f_count FROM users WHERE gid=:gid";

$stmt = $pdo->prepare($query);
$stmt->execute([':gid' => $gid]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);

$total_f_count = $row['total_f_count'];
登入後複製

以上是如何有效地對多維數組的特定列中的值求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板