Lo que debes entender es que JS y PHP se ejecutan en ámbitos completamente diferentes. Mientras PHP se ejecuta en el servidor, JS lo hace en el cliente, por eso cuando JS está corriendo PHP ya ha cumplido todas las órdenes. Lo que sucede en tu caso es que, devuelva lo que devuelva la función, $aciertos siempre aumentará en 1, porque ese código se ejecuto antes. En estos casos, la comunicación debe ser cliente-servidor, y no al revés, así que debes usar AJAX.
Saludos (:
PD: Con inline me refiero a esto:
Código:
<form name='envio' onsubmit='if(validarResultados(myArr[indice], document.envio)){...}' action='' method='GET'>
Y lo
correcto sería:
Código:
form.onsubmit = function(){
if(validarResultados(myArr[indice], document.envio)){...}
};