【问题标题】:PHP sum function?PHP求和函数?
【发布时间】:2026-02-11 15:35:01
【问题描述】:

我想对我的数组的值求和? 如果有任何 php 函数将现有多个变量的值相加(超过一个值)

看看这是我的完整示例。我从 mysql 中获取 check_in 和 check_out 值,然后计算小时、分钟和秒的差异......之后如何添加小时、分钟和秒的所有值......?像这样

我需要这样的输出 小时 = 3 分钟 = 36 秒 = 55

for($i=0;$i<count($display_time); $i++)
        {
        $timeStart = $display_time[$i]["check_in"];
        $timeEnd =  $display_time[$i]["check_out"];
        ?>
        <tr>
        <td><?php echo $value ++; ?></td>
        <td><?php echo $display_time[$i]["date"];?></td>  
        <td><?php echo $display_time[$i]["check_in"]; ?></td>  
        <td><?php echo $display_time[$i]["check_out"]; ?></td>
        <td><?php



         $to_time = strtotime($timeStart);
        $from_time = strtotime($timeEnd);
        echo $time_in_hour = round(abs($from_time - $to_time) / (60 * 60)). " hour ";



        echo $time_in_minute = round(abs(($from_time - $to_time) / 60)%60). " minute ";
        echo $time_in_second = round(abs(($from_time - $to_time) / 60*60)%60). " secs ";




         $total_time = array($time_in_hour, $time_in_minute, $time_in_second);


            print_r($total_time);
                Array
                (
                    [0] => 0 hour 
                    [1] => 2 minute 
                    [2] => 25 secs 
                )

                Array
                (
                    [0] => 0 hour 
                    [1] => 3 minute 
                    [2] => 32 secs 
                )

                Array
                (
                    [0] => 0 hour 
                    [1] => 2 minute 
                    [2] => 51 secs 
                )

【问题讨论】:

  • 这个不清楚。第一行中分配的$total_time 是一个一维数组。你如何获得print_r()中显示的数据?
  • 一个 foreach 循环,以秒为单位求和,在循环结束时以秒为单位重新格式化该总数以适合您所需的格式。

标签: php function sum


【解决方案1】:

我不太明白,但是你想对一个数组的所有值求和吗? $time_in_hour $time_in_minute $time_in_second 数组是否只有小时、分钟或秒值?在这种情况下,您可以使用:

// Count all values of all arrays in your array
foreach($mySubArray as $total_time){
    echo array_sum($mySubArray);
}

(感谢halferhis suggestion

【讨论】:

  • 当您可以使用本机函数array_sum 时,您已经定义了一个新函数。要调用一个函数,不要在它前面加上美元符号。最后,我不确定为什么最后一个循环存在 - 这将打印出数组 count($mySubArray) 次的总和。