Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对时间数组求和?PHP_Php_Arrays - Fatal编程技术网

如何对时间数组求和?PHP

如何对时间数组求和?PHP,php,arrays,Php,Arrays,如何获得多维数组的和 返回我的阵列: array(25) { [0]=> array(1) { ["time_in_minutes"]=> string(8) "01:30:00" } [1]=> array(1) { ["time_in_minutes"]=> string(8) "00:30:00" } [2]=> array(1) { ["time_in_minutes"]=>

如何获得多维数组的和

返回我的阵列:

array(25) {
  [0]=>
  array(1) {
    ["time_in_minutes"]=>
    string(8) "01:30:00"
  }
  [1]=>
  array(1) {
    ["time_in_minutes"]=>
    string(8) "00:30:00"
  }
 [2]=>
  array(1) {
    ["time_in_minutes"]=>
    string(8) "00:30:00"
  }
  [3]=>
  array(1) {
    ["time_in_minutes"]=>
    string(8) "00:15:00"
  }
  [4]=>
  array(1) {
    ["time_in_minutes"]=>
    string(8) "00:15:00"
  }

如何动态获取这些值的总和?预期的输出应该是一个将所有这些时间字符串相加的变量

最好的方法是以秒为单位转换时间,然后添加它们,再将它们转换为可读格式。如下图所示:

function sum_the_time($times) {
    $seconds = 0;
    foreach ($times as $time) {
        list($hour, $minute, $second) = explode(':', $time['time_in_minutes']);
        $seconds += $hour*3600;
        $seconds += $minute*60;
        $seconds += $second;
    }

    $hours = floor($seconds/3600);
    $seconds -= $hours*3600;
    $minutes  = floor($seconds/60);
    $seconds -= $minutes*60;
    if ($seconds < 9) {
        $seconds = "0" . $seconds;
    }
    if ($minutes < 9) {
        $minutes = "0" . $minutes;
    }
    if($hours < 9) {
        $hours = "0" . $hours;
    }
    return "{$hours}:{$minutes}:{$seconds}";
}

在上面的示例中,$time是一个数组。

Try:如果小时数超过24小时怎么办?一天应该是1天,10:15:00,还是应该是34:15:00?应该是34:15:00。这不仅仅是一个简单的总和,它是一个持续时间的总和。这个问题并不完美,但我认为它不是一个恰当的重复。我同意@Jeto。另外,2票作为重复标记是不公平的,您现在可能需要5票才能重新打开。用户类型在这里并不重要,因为它有社区。$次数组是否正确?所以我通过这个函数传递数组。不幸的是,我将在explode函数中得到一个错误警告:explode期望参数2是字符串,数组给定…-我做错了什么?我的朋友,这只是你的一个示例代码,因为我在我的代码中使用了它,所以我粘贴了它,对于你的情况,你必须输入值才能分解,这适合你。我猜在explode,你应该通过$time['time\u in\u minutes']它工作了吗?如果没有,请发邮件给我。或者给我打电话。