2013-03-18 2 views
1

두 벡터가 있습니다. 하나에는 시간과 다른 속도 값이 있습니다. 같은 시간 간격의 평균 속도 값을 얻어야합니다. 예.동일한 시간 간격으로 평균 속도 찾기

$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'값은 1020의 평균 속도는 $v이며, '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

이해하지를 시도해! –

+0

각 간격의 평균을 구하는 두 번째 벡터는 속도 값을 최적화해야합니다. 간격은 같은 시간 (첫 번째 벡터)의 다른 속도의 그룹입니다. $ v [0] => '10' $ time [1] => '18:00:00'으로 $ time [0] => '18:00:00'에 해당하는 값은 다음과 같습니다. $ v [1] => '20 '' ... 그리고 첫 번째 간격은 입니다.이 경우 평균 속도는 15입니다.이 경우 ... 다른 간격으로 계속하십시오. – rakela

+0

'첫 번째 간격'과 같은 시간은 '15'이고 두 번째 간격은 평균 '25 '일까요? –

답변

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); 

     ?>