Files
conservatorio-tomadini/templates/tabulizer/calc/avg.php
2024-12-17 17:34:10 +01:00

51 lines
1.2 KiB
PHP

<?php
class TabulizerCalcAvg {
function calc($row_id, $column_id, $values, $custom_arg) {
$sum = null;
$count = 0;
if (!empty($values)) {
$sum = 0;
foreach ($values as $coord => $value) {
if (!empty($custom_arg)) {
list($value_row_id, $value_column_id) = explode(',',$coord);
switch ($custom_arg) {
case 'above':
$id = intval($value_row_id);
if ($id >= $row_id) continue 2;
break;
case 'below':
$id = intval($value_row_id);
if ($id <= $row_id) continue 2;
break;
case 'left':
$id = intval($value_column_id);
if ($id >= $row_id) continue 2;
break;
case 'right':
$id = intval($value_column_id);
if ($id <= $row_id) continue 2;
break;
default:
// unknow case
continue 2;
}
}
$value = TabulizerMath::getNumericValue($value);
if (is_numeric($value)) {
$sum += $value;
$count++;
}
}
}
if ($count) {
$value = ($sum / $count);
return $value;
} else {
return null;
}
}
}
?>