Files
nuhodds_fi4/app/Filament/Widgets/Data/HelperMoveingAveragePerformens.php
T
2026-06-03 10:10:53 +02:00

56 lines
1.4 KiB
PHP

<?php
namespace App\Filament\Widgets\Data;
class HelperMoveingAveragePerformens
{
public static function get(&$data)
{
if (! $data) {
return;
}
$data['labels'] = array_slice($data['labels'], 2);
$datasets = $data['datasets'];
foreach ($datasets as $k => $dataset) {
$arr = $dataset['data'];
self::fillHoles($arr);
$new = [];
$last = count($arr);
foreach ($arr as $key => $value) {
if ($key == 1 && $last > 2) {
$new[] = round(($arr[0] + $value + $arr[2]) / 3, 1);
} elseif ($key > 1 && $key < $last - 1) {
$new[] = round(($arr[$key - 1] + $value + $arr[$key + 1]) / 3, 1);
}
}
$data['datasets'][$k]['data'] = $new;
}
}
public static function fillHoles(array &$arr)
{
if (! $arr) {
return;
}
if (! $arr[0]) {
// get first value in array and copy it to start if start is null
$arr[0] = current(array_filter($arr));
}
$priv = 0;
foreach ($arr as $key => $value) {
if ($value) {
$priv = $value;
} else {
if ($priv) {
$arr[$key] = $priv;
}
}
}
}
}