PHP:如何从list()中获得总和?

时间:2015-02-26 06:34:15

标签: php list explode

我花了很长时间才解决这个问题并决定寻求帮助。

我这里有一个PHP代码来计算总小时数和分钟数。我知道我应该使用php SUM(totalhours),但我想以不同的方式尝试。

$query_hours获取列'totalhours'

foreach($query_hours->result() as $row){
    $tt = $row->totalhours;     // 10:58 | 09:20 | 10:00
    list($tt1,$tt2) = explode(':', $tt);  //$tt1 = 10 | 09 | 10
}

现在的问题是如何得到$tt1的总和为29? 我试过array_sum($tt1)但是我收到了一个错误,比如无效的参数,给出的字符串。在使用$thours = array($tt1)之前已经进行了初始化array_sum(),但仍然出现了另一个错误:3

4 个答案:

答案 0 :(得分:0)

既然你说你想按照自己的方式去做并且不想使用Mysql SUM(),你可以使用变量来保存循环中的总和

$sum=0;
foreach($query_hours->result() as $row){
   $tt = $row->totalhours;     // 10:58 | 09:20 | 10:00
   list($tt1,$tt2) = explode(':', $tt);  //$tt1 = 10 | 09 | 10
   $sum+=$tt1;
 }
echo $sum;

答案 1 :(得分:0)

使用如下

$total=0;
foreach($query_hours->result() as $row){
   $tt = $row->totalhours;     // 10:58 | 09:20 | 10:00
   list($tt1,$tt2) = explode(':', $tt);  //$tt1 = 10 | 09 | 10
   $total+=$tt1;
 }
echo $total; //your result here

答案 2 :(得分:0)

我认为这可以解决您的问题,试试这个:

$sum=0;
foreach($query_hours->result() as $row){
   $tt = $row->totalhours;     // 10:58 | 09:20 | 10:00
   list($tt1,$tt2) = explode(':', $tt);  //$tt1 = 10 | 09 | 10
   $sum+=$tt1;
 }
echo $sum;

答案 3 :(得分:0)

使用array_sum时出现的错误是什么?只要你给它一个数组就不应该有任何错误。

$sum = 0;
foreach($query_hours->result() as $row){
    $tt = $row->totalhours;     // 10:58 | 09:20 | 10:00
    $sum += array_sum(explode(':', $tt));  //$tt1 = 10 | 09 | 10
}