如何对时间数组求和?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']它工作了吗?如果没有,请发邮件给我。或者给我打电话。