PHP开发中如何对MySQL查询返回的数组元素求和得到总数值
方案1:直接处理当前拿到的空格分隔字符串求和
你目前输出的是空格分隔的数字字符串,先把字符串按空格拆分成数组,再对数组所有元素求和即可。如果字符串存在连续空格,建议用正则拆分避免空元素干扰:
// 原有代码修正笔误:SQL里的别名是sum_lines_done,之前取sum_done会取不到值 $query1 = $this->db->query('SELECT *, sum(`lines_done`) as sum_lines_done FROM `lines` where id = ' . $id_print . ' '); $data1= $query1->result(); $tool_all = $data1[0]->sum_lines_done; // 新增求和逻辑 // 先去除首尾空格,再按任意数量空白符拆分,转成浮点型后求和 $num_array = array_map('floatval', preg_split('/\s+/', trim($tool_all))); $total = array_sum($num_array); // 输出结果即为154 echo $total;
方案2:直接在SQL层面计算总和(更推荐,性能更好)
如果是要对查询行的所有指定字段值求和,可以直接在SQL里完成计算,不需要PHP层二次处理:
// 把需要求和的所有字段在SQL中直接相加,一次性拿到最终总和 $query1 = $this->db->query('SELECT (字段1 + 字段2 + 字段3 + ... + sum(`lines_done`)) as total FROM `lines` where id = ' . $id_print . ' '); $data1 = $query1->result(); $total = $data1[0]->total; echo $total;
注意:上述SQL写法里的
字段1、字段2等需要替换为你实际要参与求和的表字段名。
内容的提问来源于stack exchange,提问作者Dina
相关产品推荐
相关产品推荐

