Ejemplo n.º 1
0
 * Create list and filter / group
 */
// Create list
$watch->start();
$list = new ArrayList($conv);
L::line("Data imported:", $watch->stop()->result());
// Stats
echo "\n";
L::line($list->length(), "records");
L::line("First record:", $list->first()->timestamp->format('Y-m-d H:i:s'));
L::line("Last record:", $list->last()->timestamp->format('Y-m-d H:i:s'));
echo "\n";
// Only the newest day, group by hour
$watch->start();
$dates = $list->distinct(function ($v) {
    return $v->timestamp->format('Y-m-d');
})->take(-2)->select(function ($v) {
    return $v->timestamp->format('Y-m-d');
});
$hours = $list->where(function (ObjectArray $r) use($list, $dates) {
    return in_array($r->timestamp->format('Y-m-d'), $dates);
})->groupBy(function (ObjectArray $r) {
    return $r->timestamp->format('Y-m-d H:00');
});
L::line("Filter for last day:", $watch->stop()->result());
/**
 * Print results
 */
// Table header
echo "\n";
echo columnline(array(array(19, "Time"), array(8, "Records"), array(10, "OMin °C"), array(10, "OAvg °C"), array(10, "OMax °C"), array(10, "IMin °C"), array(10, "IAvg °C"), array(10, "IMax °C"), array(8, "Min H%"), array(8, "Avg H%"), array(6, "Max H%")));