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:
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;

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.

Che bel giochino!