晚上好
我有一个问题。我有两个数组:$duration_c[$k][$s]。它打印一切正常
$duration_c[0][0]="19:30:00";
$duration_c[0][1]="00:10:00";
$duration_c[1][0]="00:30:00";
$duration_c[1][1]="00:20:00";
比求和
$times=$duration_c[$k][$s];
function sum_the_time($times) {
$seconds = 0;
foreach ($times as $time)
{
list($hour,$minute,$second) = explode(':', $time);
$seconds += $hour*3600;
$seconds += $minute*60;
$seconds += $second;
}
$hours = floor($seconds/3600);
$seconds -= $hours*3600;
$minutes = floor($seconds/60);
$seconds -= $minutes*60;
// return "{$hours}:{$minutes}:{$seconds}";
return sprintf('%02d:%02d:%02d', $hours, $minutes, $seconds);
}
echo sum_the_time($times);
如何对$duration_c[0][0]+$duration_c[0][1]和$duration_c[1][0]+$duration_c[1][1]求和,以及如何打印? 出现错误为 foreach() 提供的参数无效
最佳答案
您仅向 sum_the_time 函数发送一个值,如 $times=$duration_c[$k][$s];
$times 只有一个值,您可以通过这样的写法打印并检查该函数将获得什么值
$times=$duration_c[$k][$s];
echo $times;
使用
$times=$duration_c[$k];
这样您就可以将数组发送到您的函数,并且 foreach 不会给您错误
$times=$duration_c[$k]; // contains array of times
function sum_the_time($times) {
$seconds = 0;
foreach ($times as $time)
{
list($hour,$minute,$second) = explode(':', $time);
$seconds += $hour*3600;
$seconds += $minute*60;
$seconds += $second;
}
$hours = floor($seconds/3600);
$seconds -= $hours*3600;
$minutes = floor($seconds/60);
$seconds -= $minutes*60;
// return "{$hours}:{$minutes}:{$seconds}";
return sprintf('%02d:%02d:%02d', $hours, $minutes, $seconds);
}
echo sum_the_time($times);
关于php - 如何对二维数组求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13543423/