Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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 - Fatal编程技术网

Php 从二维数组中求时间和

Php 从二维数组中求时间和,php,Php,您好,我将查找总和,但是出现了错误,如为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"; $dura

您好,我将查找总和,但是出现了错误,如为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);
 }

函数和时间($times){
$seconds=0;
foreach($time1的倍)
{ 
列表($hour,$minute,$second)=分解(“:”,$time);
$seconds+=$hour*3600;
$seconds+=$minute*60;
$seconds+=$second;
}
$hours=地板($seconds/3600);
$seconds-=$hours*3600;
$分钟=地板($秒/60);
$seconds-=$minutes*60;
//返回“{$hours}:{$minutes}:{$seconds}”;
返回sprintf(“%02d:%02d:%02d',$hours,$minutes,$seconds);
}

为foreach()提供的参数无效。
表示传递给函数的数组为空(或不是数组)

添加一个条件以检查它是否有效

if(is_array($times) and count($times)>0){
  foreach ($times as $time1){
    (...)
  }
}

问题是什么?显示了为foreach()@ganna提供的错误无效参数,这是由于未设置
$duration\u c[$i]
处的值所致。通过回显检查是否有任何值。您可以在sql查询本身中使用
sum(o_duration)
来获取时间之和。
lenght
在PHP中不是函数,请使用
count($times)