你好,我要找到总和,但有类似Invalid argument supplied for foreach()
的错误显示如何检查错误
我的代码是
我有这样的时间
$SQL = "SELECT o_duration FROM total WHERE location=('".$location_c[$k]."') AND sub_cat=('".$id."') AND dateid BETWEEN '".$trgD."' AND '".$date2."'";
$result = mysql_query($SQL);
$s="0";
$duration_c[$k]=array();
while ($db_field = mysql_fetch_array($result)) {
$duration_c[$k][$s]= $db_field['o_duration'];
$s++;
}
然后我用for循环将其打印在表格中
<?php
for($i=0;$i<$l;$i++)
{
?>
<td width="154" class="alt" align="center"><?php echo sum_the_time($duration_c[$i])
?></td> <?php } ?>
function sum_the_time($times) {
$seconds = 0;
foreach ($times as $time1)
{
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);
}
Invalid argument supplied for foreach()
表示传递给函数的数组为空(或不是数组)
添加一个条件来检查它是否是有效的
if(is_array($times) and count($times)>0){
foreach ($times as $time1){
(...)
}
}