Mi sono accorto che c'è un piccolo bug!... Potrebbe succedere che una lettera non sia mai estratta. In tal caso $qta[$key] rimarrebbe a 0 nella funzione CalcolaArrayMedie producendo un errore di division by zero. Segue la funzione con patch:
Non occorre settare un valore per $medie[$key] se $qta[$key]==0, perchè se il $key è una lettera mai estratta, i suoi valori medi non saranno mai richiesti.Codice PHP://Funzione di generazione di un array delle medie per ogni elemento di $lettere
//a seconda delle coppie $arrayLettere,$arrayValore
function CalcolaArrayMedie($lettere,$arrayLettere,$arrayValori){
$somme=array();
$qta =array();
$dim=count($lettere);
for($i=0;$i<$dim;$i++){
$somme[$lettere[$i]]=0;
$qta[$lettere[$i]]=0;
}
$dim=count($arrayLettere);
for($i=0; $i<$dim;$i++){
$somme[$arrayLettere[$i]]+=$arrayValori[$i];
$qta[$arrayLettere[$i]]+=1;
}
$medie=array();
foreach($somme as $key=>$value)
if($qta[$key]) //patch al bug!
$medie[$key]=$value/$qta[$key];
return $medie;
}
Che bel giochino!
![]()

Mi sono accorto che c'è un piccolo bug!... Potrebbe succedere che una lettera non sia mai estratta. In tal caso $qta[$key] rimarrebbe a 0 nella funzione CalcolaArrayMedie producendo un errore di division by zero. Segue la funzione con patch:
Rispondi quotando