두 개의 일치하는 데이터 배열이 있습니다. 하나는 값을, 다른 하나는 시간을 말합니다. 나는 가장 가까운 5 분으로 시간을 반올림하고 결과에서 나는 스스로 반복하는 시간을 가진 새로운 배열을 가진다. 나는 평등 한 시간을 그룹화하고, 그것들을 계산하고, 다른 배열에서 각각의 값을 소멸시키고, 그 시간 동안 평균을 취한다. 값의 마지막 그룹을 제외하고 계산 된 평균이있다배열의 마지막 그룹 평균을 구하십시오.
"total = 2996
total = 3325
total = 3656
total = 3996
average = 333
total = 329
total = 652
total = 976
total = 1304
total = 1630
total = 1961
total = 2297
total = 2629
average = 328.625
total = 332
total = 660
total = 997
total = 1320
total = 1646
total = 1967
각 그룹 :
$first_hour = array('11:01', '12:04', '13:00', '15:28', "15:43", "15:53", "15:55", "16:02", "16:05", "16:17", "16:15", "16:21", "16:25", "16:33", "16:35", "16:43", "16:45", "16:56", "16:58", "17:00", "17:04", "17:07", "17:19");
$values = array(12, 23, 5, 90, 12, 23, 45, 56, 12, 15, 43, 48, 54, 62, 52, 41, 74, 54, 84, 75, 96, 69, 36);
$minutes = 5;
$precision = 60 * $minutes;
$time = "00:00";
$average = 0;
//round first array to nearest 5 minutes
$timestamp = strtotime($first_hour);
$data_ora = date("H,i", round($timestamp/$precision) * $precision);
//the hours array will become like this:
$first_hour = array('11:00', '12:05', '13:00', '15:30', "15:45", "15:50", "15:55", "16:00", "16:05", "16:15", "16:15", "16:20", "16:25", "16:35", "16:35", "16:45", "16:45", "17:00", "17:00", "17:00", "17:05", "17:10", "17:20");
if ($first_hour == $time) {
if ($values[$i] > 0) {
$indexi = $indexi + 1;
$total = $total + $values;
echo "</br> total = ".$total;
$i++;
} else {
$time = date("H,i", round($timestamp/$precision) * $precision);
//echo "time has changed";
$average = $total/$index;
$dataora = date("Y,m,d", round($timestamp)) . "," . $time;
//fill in the vectors
$v[1] = $average;
$v[2] = $dataora;
echo "</br> average = " . $v[1];
$indexi = 0;
$totali = 0;
}
}
출력이 같다 : 여기서 코드이다. 평균을 어떻게 계산합니까? 마지막 그룹의 경우 첫 번째 조건이되지만 평균이 계산되도록 휴식 시간 (변경 시간)이 else
에 속하지 않습니다.
이 출력은 실제 코드와 비슷하지만 위의 테스트 결과는 테스트 용으로 데이터가 적은 비슷한 출력입니다! – Mirela
코드에서 echo "total"은 어디에 있습니까? – SaidbakR
@ sємsєм 두 번째 'if'조건에 있습니다. 방금 코드를 편집했습니다. 죄송합니다. 건너 뛰었습니다. – Mirela