首页 > 数据库 > mysql教程 > 如何有效地对多维数组的特定列中的值求和?

如何有效地对多维数组的特定列中的值求和?

Linda Hamilton
发布: 2024-12-15 13:50:54
原创
142 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板