Non so se hai capito di cosa avevo bisogno, lavorandoci so che non è bello ma ho ottenuto questo:


codice:
 /*////////ALLIEVI CON PIU' DI 5 ERRORI//////// */
            for($i=0;$i<$allievi_no;$i++){
                $quiz_errati[$a]=array();
                $array_sbagliati[$a]=array();
              //  echo(json_encode($array_allievi[$i])."\n\r");


                $errori1=rand(5,10);
               // echo("num errori: ".$errori1."\n\r");
                for($j=0;$j<$errori1;$j++){
                    $id_errati=rand(1,39); 
                    if(in_array($id_errati,$array_sbagliati[$a])){
                        $id_errati=rand(1,39);
                        if(in_array($id_errati,$array_sbagliati[$a])){
                            $id_errati=rand(1,39);
                            if(in_array($id_errati,$array_sbagliati[$a])){
                                $id_errati=rand(1,39);
                                if(in_array($id_errati,$array_sbagliati[$a])){
                                    $id_errati=rand(1,39);
                                    if(in_array($id_errati,$array_sbagliati[$a])){
                                        $id_errati=rand(1,39);
                                        if(in_array($id_errati,$array_sbagliati[$a])){
                                            $id_errati=rand(1,39);
                                            if(in_array($id_errati,$array_sbagliati[$a])){
                                                $id_errati=rand(1,39);
                                                if(in_array($id_errati,$array_sbagliati[$a])){
                                                    $id_errati=rand(1,39);
                                                    if(in_array($id_errati,$array_sbagliati[$a])){
                                                        $id_errati=rand(1,39);
                                                    } 
                                                } 
                                            } 
                                        } 
                                    } 
                                } 
                            } 
                        } 
                        
                    }          
                 
                    array_push($array_sbagliati[$a],$id_errati);


                }
       
            
                $a++;   
            }


      
            $n=0;
           
           $listaQuizId_no=array();
           $h=0;
           $s=1;
          
            
            $semaforo=false;


          


            while($h<$a){
                $arr_giuste=array();
                $arr_errate=array();
                $arr[$h] = array();
                $arr_giuste[$h]=array();
                foreach($array_sbagliati[$h] as $key=>$value){
                    //echo($key."=>".$value)."\n\r";
                    $arr[$h][$key] = $value;
                }
                array_multisort($arr[$h], SORT_ASC, $array_sbagliati[$h]);
                
              //  echo json_encode($arr[$h])."\n\r";


                for($q=0;$q<sizeof($arr[$h]);$q++){


                    while(sizeof($quiz_errati[$h])<sizeof($array_schede)){
             
                        if($arr[$h][$q]==$s){


                            $listaQuizId_no[$h]=array(                            
                                "id".($s) =>$array_schede[$s-1]["id".($s)],
                                "rispostaok"=> 0
                            );
                           
                          
                            array_push($quiz_errati[$h], $listaQuizId_no[$h]);  




                            $s++;
                            if($q<sizeof($arr[$h])-1){
                                $q++;
                            }
                            
                        }else{
                            $listaQuizId_no[$h]=array(                            
                                "id".($s) =>$array_schede[($s-1)]["id".($s)],
                                "rispostaok"=> 1
                            );                           
                          
                            array_push($quiz_errati[$h], $listaQuizId_no[$h]);  




                            $s++;
                        }   


                    }
                    $s=1;
                }


                $agg_corretta=array(
                    "id_allievo"=>$array_allievi[$h]["id_allievo"],
                    "tempo_scheda"=>$tempo,
                    "arr_idmaster_rispostaok"=>$quiz_errati[$h]
                );
                
                array_push($result["risultati"], $agg_corretta);
               // echo(json_encode($quiz_errati[$h])."\n\r");


                


                $h++;
            }


            
            ///////////////////////////////////////////////////////////////////////////////////////////////////////
            /*///////////////////////////////////////ALLIEVI CON MENO DI 5 ERRORI/////////////////////////////// */
            //////////////////////////////////////////////////////////////////////////////////////////////////////
            
            $d=0;
            $cont=0;
            for($i=0;$i<$allievi_ok;$i++){
                $quiz_errati2[$d]=array();              
                $array_sbagliati2[$d]=array();
               // echo(json_encode($array_allievi[$i])."\n\r");


                $errori2=rand(0,4);
                
                                       


                if($errori2!=0){
                    for($j=0;$j<=$errori2;$j++){
                        $id_errati=rand(1,39); 
                        if(in_array($id_errati,$array_sbagliati2[$d])){
                            $id_errati=rand(1,39);
                            if(in_array($id_errati,$array_sbagliati2[$d])){
                                $id_errati=rand(1,39);
                                if(in_array($id_errati,$array_sbagliati2[$d])){
                                    $id_errati=rand(1,39);
                                    if(in_array($id_errati,$array_sbagliati2[$d])){
                                        $id_errati=rand(1,39);
                                        if(in_array($id_errati,$array_sbagliati2[$d])){
                                            $id_errati=rand(1,39);
                                            if(in_array($id_errati,$array_sbagliati2[$d])){
                                                $id_errati=rand(1,39);
                                                if(in_array($id_errati,$array_sbagliati2[$d])){
                                                    $id_errati=rand(1,39);
                                                    if(in_array($id_errati,$array_sbagliati2[$d])){
                                                        $id_errati=rand(1,39);
                                                        if(in_array($id_errati,$array_sbagliati2[$d])){
                                                            $id_errati=rand(1,39);
                                                        } 
                                                    } 
                                                } 
                                            } 
                                        } 
                                    } 
                                } 
                            } 
                            
                        }  
                        array_push($array_sbagliati2[$d],$id_errati);
                    }


                }
                


                
                $d++;


            }




           
            $n=0;
           
            $listaQuizId_no2=array();
            $x=0;
            $s=1;
            $l=1;
            $m=0;
            $quiz_errati2=array();
            while($x<$d){
                if($array_sbagliati2[$x]!=[]){


                    $arr_giuste=array();
                    $arr_errate=array();
                    $arr[$x] = array();
                    $arr_giuste[$x]=array();
                    $quiz_errati2[$x]=array();


                    foreach($array_sbagliati2[$x] as $key=>$value){
                        //echo($key."=>".$value)."\n\r";
                        $arr[$x][$key] = $value;
                    }
                    array_multisort($arr[$x], SORT_ASC, $array_sbagliati2[$x]);


                   


                    for($m=0;$m<sizeof($arr[$x]);$m++){
                        while(sizeof($quiz_errati2[$x])<sizeof($array_schede)){
                            if($arr[$x][$m]==$s){
                                $listaQuizId_no2[$x]=array(                            
                                    "id".($s) =>$array_schede[$s-1]["id".($s)],
                                    "rispostaok"=> 0
                                );                               
                              
                                array_push($quiz_errati2[$x], $listaQuizId_no2[$x]);  
    
                                $s++;
                                if($m<sizeof($arr[$x])-1){
                                    $m++;
                                }  
                            }else{
                                $listaQuizId_no2[$x]=array(                            
                                    "id".($s) =>$array_schede[($s-1)]["id".($s)],
                                    "rispostaok"=> 1
                                );                           
                              
                                array_push($quiz_errati2[$x], $listaQuizId_no2[$x]);  
    
    
                                $s++;
                            }
                        }
                        $s=1;
                    }
                    
                    $agg_corretta=array(
                        "id_allievo"=>$array_allievi[$x]["id_allievo"],
                        "tempo_scheda"=>$tempo,
                        "arr_idmaster_rispostaok"=>$quiz_errati2[$x]
                    );
                    
                    array_push($result["risultati"], $agg_corretta);


                   //echo(json_encode($quiz_errati2[$x])."\n\r");
                    
                }else{
                    $quiz_OK=array(); 
                    $quiz_errati2[$x]=array();   
                  //  echo("VUOTO: ". json_encode($array_sbagliati2[$x])."\n\r");


                    while($s<=sizeof($array_schede)){
                        $listaQuizId_no2[$x]=array(                            
                            "id".($s) =>$array_schede[$s-1]["id".($s)],
                            "rispostaok"=> 0
                        );                               
                      
                        array_push($quiz_errati2[$x], $listaQuizId_no2[$x]);  


                        $s++;
                    }
                    $s=1;


                    $agg_corretta=array(
                        "id_allievo"=>$array_allievi[$x]["id_allievo"],
                        "tempo_scheda"=>$tempo,
                        "arr_idmaster_rispostaok"=>$quiz_errati2[$x]
                    );
                    
                    array_push($result["risultati"], $agg_corretta);


                    
                }


                $x++;
            }


            $risultati_finale=array(
                "file_listato"=> "NQM2016.1.XML",
                "num_quesiti" => "40",
                "soglia_errori"=> "4",
                "risultati"=>$result["risultati"]
            );


            // echo json_encode($result["risultati"]); 
            echo json_encode($risultati_finale);


            file_put_contents("risultati_finale.json",json_encode($risultati_finale));
Non è bello ma fa quello di cui avevo bisogno.