mi correggo, l'array $cc ancora non è formato bene, probabilmente quel $in_array è falso qualche volta di troppo
codice:
$cc['mNodes']=array();        $index=0;
    while($row=$res->fetch(PDO::FETCH_ASSOC | PDO::FETCH_GROUP)){
            $in_array=false;
            for($x=0;$x<$index;$x++){
                if($row['id']==$cc['mNodes'][$x]['id']){
                    $in_array=true;break;
                }
            }
            
            if($in_array==true) {
                $numMassime++;
                $cc['mNodes'][$index]['massima'][$numMassime]=$row['massima_id'];
            } else {
                $numMassime=0;
                $cc['mNodes'][$index]['id']=$row['id'];
                $cc['mNodes'][$index]['testata']=$row['numero_pronuncia'].'/'.$row['anno_pronuncia'];
                $cc['mNodes'][$index]['massima']=array();
                $cc['mNodes'][$index]['massima'][$numMassime]=$row['massima_id'];
                $index++;
                }
        
    }