You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取数据库HOURS列数据存入数组并按对应位置累加求和

实现同位置HOURS累加的解决方案

你现有代码的核心问题有两个:

  • 循环内每次直接覆盖$hours变量,没有做累加处理
  • explode方法拆分的目标值写错了,应该拆分查询结果行里的HOURS字段,而不是还没赋值的$hours变量

你可以按以下逻辑实现:

  1. 循环外提前初始化一个和HOURS字段元素数量一致的全0数组,用于存储对应位置的累加结果
  2. 循环内拆分每一行的HOURS字段值,遍历每个位置和累加数组的对应下标值相加
  3. 循环结束后直接输出累加数组即可

完整代码示例:

// 初始化累加数组,4个元素对应HOURS的4个位置,初始值都是0
$totalHours = array_fill(0, 4, 0);

while($row = sqlsrv_fetch_object($result)) {
    // 拆分当前行的HOURS字段为数组
    $currentHours = explode(', ', $row->HOURS);
    // 遍历每个位置累加
    foreach($currentHours as $index => $val) {
        $totalHours[$index] += (int)$val;
    }
}

// 输出结果,比如你要的HTML表格格式
echo '<table><tr><td>TOTAL HOURS</td>';
foreach($totalHours as $hour) {
    echo "<td>$hour</td>";
}
echo '</tr></table>';

运行上述代码后$totalHours的值就是你需要的[14,15,22,14],输出的HTML表格也符合要求。

内容的提问来源于stack exchange,提问作者JDeLeon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:09:04