Hola, primero que nada deberias de poner:
Código:
ret = Array();
var reta:String;
for (i in ratings) {
rating = ratings[i];
rank = saveMotIds[i].rankContainer.held.rank;
// REEMPLAZAR POR:
ret.push("rating: "+int(rating)+"rank: "+int(rank)+" ");
}
reta = ret.join("-");
varsToSend = new LoadVars();
varsToSend.ret = reta;
varsToSend.send("rating2.php","POST");
Esa linea debe de reemplazarse por que sino puede que haya posiciones dentro del Array que quedan en NULL o undefined, por ejemplo si en "ratings" tenes los datos para 1 y 3, entonces la posicion 2 te quedaria nula y esto podria concatenarte el NULL por hacer el JOIN("-").
Segundo, no tiene mucho sentido opner todo en un array para luego pasarla a string nuevamente, asi que la mejor opcion en cuanto a rendimiento, y facilidad seria la siguiente:
Código:
var reta:String;
for (i in ratings) {
rating = ratings[i];
rank = saveMotIds[i].rankContainer.held.rank;
// REEMPLAZAR POR:
reta += "rating: "+int(rating)+"rank: "+int(rank)+" -";
}
varsToSend = new LoadVars();
varsToSend.ret = reta;
varsToSend.send("rating2.php","POST");
Luego los datos recibidos por PHP en la variable reta tendrian un signo "-" a lo ultimo, lo cual obviamente para cada item deberias de comparar si estan los items "rating" y "rank".
Pero mi consejo principal es que si haces un sitio donde requiera enviar y recibir datos de PHP a Flash y viceversa, te pongas a mirar sobre AMFPHP. Esta seria la solucion a tus problemas, ya que de utilizando AMFPHP, podrias enviar y recibir objetos, arrays, o cualquier tipo de datos, sin necesidad de conversion a string o viceversa, y recivirias dentro del flash o el php (segun sea el caso de donde reciba los datos) en el tipo de dato en que fueron enviados.