$min = 10*60; //秒
$start_date = strtotime("{$params['report_date']} 10:00:00");
$end_date = strtotime("{$params['report_date']} 23:00:00");
$list = array();
//整理出一個10分鐘一段的數(shù)組
while (true) {
? ? $i = 0;
? ? $s = $start_date;
? ? $start_date = $start_date+$min;
? ? $list[] = ['s'=>$s,'e'=>$start_date];
? ? $i++;
? ? if($start_date>=$end_date) {
? ? ? ? break;
? ? }
}
$result = array();
//循環(huán)列表和時間段對比如果在時間段里面整理成新的數(shù)組,不再則是0
foreach ($rsList as? $key=>$value) {
? ? foreach($list as $k=>$v) {
? ? ? ? $a = strtotime($value['create_time']);
? ? ? ? $s = $v['s'];
? ? ? ? $e = $v['e'];
? ? ? ? if($s<=$a&&$a<=$e) {
? ? ? ? ? ? $result[date("H:i",$s)][] = ($value['user_average_value']);
? ? ? ? ? ? unset($rsList[$key]);
? ? ? ? }else{
? ? ? ? ? ? $result[date("H:i",$s)][] = '0';
? ? ? ? ? ? unset($rsList[$key]);
? ? ? ? }
}
}
$newData =[];
計算出有值并不重復的總個數(shù),和值的合。整理成新的數(shù)組。
foreach ($result as $k=>$v){
? ? $count = count(array_filter($result[$k]));
? ? $sumval = array_sum($result[$k]);
? ? $val = sprintf("%.2f", $sumval/$count);
? ? $newData[$k] = $val;
}