El problema que tienes es que sólo "check[]" contendrá los "Indices" (o generará) de los checkbox que selecciones ..por eso no "cuadan" con los campos hidden (nick[]), sobre todo cuando "salteas" los items que seleccionas (no seleccionando todos) (o eso creo que sucede).
Código PHP:
for ($x=0; $x <= count($_POST['check']); $x++){
echo $id.$ruta.$_POST['nick'][$x]."<br>";
}
Revisa si obtienes las rutas que corresponden.
Teóricamente .. recorro el array "check" y accedo a los indices "paralelos" del otro (u otros) arrayas asociados ...
Un saludo,