getRounds()[0]; if (strtotime($firstRound["pubblicazione"]) < strtotime('2017-05-20')) { $numSoglia = ceil($numero_partecipanti * 10 /100); } else { $numSoglia = ceil($numero_partecipanti * 20 /100); } $taglioAli = []; $i = 0; $contatore = 0; $punteggioAttuale = ""; while($i < $numSoglia) { $partecipante = $partecipanti[$contatore]; $taglioAli[] = $partecipante["codice"]; if ($punteggioAttuale != $partecipante["totale"]) { $punteggioAttuale = $partecipante["totale"]; $i++; } $contatore++; } if (isset($partecipanti[$contatore]) && $partecipanti[$contatore]["totale"] === $punteggioAttuale) { while($partecipanti[$contatore]["totale"] === $punteggioAttuale) { $partecipante = $partecipanti[$contatore]; $taglioAli[] = $partecipante["codice"]; $contatore++; } } $i = 0; $contatore = $numero_partecipanti -1; $punteggioAttuale = ""; while($i < $numSoglia) { $partecipante = $partecipanti[$contatore]; $taglioAli[] = $partecipante["codice"]; if ($punteggioAttuale != $partecipante["totale"]) { $punteggioAttuale = $partecipante["totale"]; $i++; } $contatore--; } if (isset($partecipanti[$contatore]) && $partecipanti[$contatore]["totale"] === $punteggioAttuale) { while($partecipanti[$contatore]["totale"] === $punteggioAttuale) { $partecipante = $partecipanti[$contatore]; $taglioAli[] = $partecipante["codice"]; $contatore--; } } reset($partecipanti); $somma = 0; $contatore = 0; foreach($partecipanti AS $partecipante) { if (in_array($partecipante["codice"],$taglioAli) === false) { $somma += $partecipante["totale"]; $contatore++; } } $media = $somma / $contatore; if (!$soloSoglia) { if ($arrotondamento) { $somma = number_format($somma,$decimali); $media = number_format($media,$decimali); } else { $somma = truncate($somma,$decimali); $media = truncate($media,$decimali); } } $somma = strval($somma); $decremento = 0; if (strpos($somma,".")!==false) { $decremento = explode(".",$somma); $decremento = (int) substr($decremento[1],0,1); if ($decremento % 2 == 0) { $decremento = 0; } } $soglia_anomalia = $media - (($media*$decremento)/100); if ($arrotondamento) { $soglia_anomalia = number_format($soglia_anomalia,$decimali); } else { $soglia_anomalia = truncate($soglia_anomalia,$decimali); } $infoAnomalia["media"] = $media; $infoAnomalia["decremento"] = $decremento; $infoAnomalia["soglia"] = $soglia_anomalia; $infoAnomalia["riepilogo"] = "Anomalia calcolata ai sensi dell'art. 97 c. 2 lettera b del D.lgs 50/2016 - Media: {$media} - Decremento: {$decremento} - Soglia individuata: {$soglia_anomalia}"; } ?>