2013-03-18 85 views
1

我有两个向量。一个人有时间和其他速度值。我需要得到相同时间间隔的平均速度值。 ex。在相同的时间间隔内找到平均速度

$time=array('18:00:00', '18:00:00', '19:15:00', '19:15:00', '20:30:00'); 
$v=array(10, 20, 30, 70, 60); 

我需要得到的向量:$v_optimized(15, 50, 60); 值'15'是$v中值1020的值的平均速度,对应于所有值的相同时间'18:00:00'等等。

我已经写了这段代码,但我错过了一些东西。请有人帮助我。

$time=array('18:00:00', '18:00:00', '19:15:00', '19:15:00', '20:30:00'); 
$v=array(10, 20, 30, 70, 60); 
$time_opt= array(); 
$v_opt= array(); 
$start=0; 
$count=0; 
$end=0; 
$sum=0; 
$nr=count($time); 
for($i=0; $i<$nr-2; $i++){ 
for($j=$i+1; $j<$nr-1; $j++){ 
$start = $i; 

if($time[$j]==$time[$j+1]){ 
$time_opt[$i]=$time[$i]; 
$count++; 
$sum+= $v[$j]; 
} 
else{ 
$avg = $sum/$count; 
array_push($v_opt, $avg); 
//$count = 0; 
} 
}} 
for($k=0;$k<count($v_opt); $k++) 
echo $v_opt[$k].'<br>'; 
+0

不明白你想要什么! – 2013-03-18 09:39:07

+0

我需要优化速度值是第二个向量来获得每个区间的平均值。间隔是同一时间的一组不同速度(第一个矢量)。 这些值是相应的: '$ time [0] =>'18:00:00'with $ v [0] =>'10' $ time [1] =>'18:00:00'与$ v [1] =>'20'' ...等等 对于第一个时间间隔,我需要获得平均速度,即15,在这种情况下...并继续其他时间间隔。 – rakela 2013-03-18 09:41:13

+0

确定像'第一间隔'平均时间将'15''第二间隔'平均时间将是'25'? – 2013-03-18 09:43:36

回答

1

至于我能理解这是你想要的..试试看

<?php 

     $time=array('18:00:00', '18:00:00', '19:15:00', '19:15:00', '20:30:00'); 
     $v=array(10, 20, 30, 70, 60); 

     // get total of vector for a given time 
     $temp_arr = array(); 

     foreach($time as $key=>$value) 
     { 
      $temp_arr[$value] = $temp_arr[$value]+$v[$key] ; 
     } 


     // count the repititons 
     $count_val_time = array_count_values($time); 

     // your required array 
     $req_arr = array(); 

     foreach($temp_arr as $key=>$value) 
     { 
      $req_arr[$key] = $value/($count_val_time[$key]); 
     } 

     print_r($req_arr); 

     ?>