No entiendo como envias los días en un solo array (de cada curso), porque así como estas los checkbox que no se marquen no se enviarán, por lo tanto el siguiente día que si se marque tomará la posición del anterior...
supongamos lo siguiente:
curso 1: (en teoria estos deberían enviarse con el indice 0)
lunes: X
martes:
miércoles: X
jueves:
viernes: X
curso 2: (aquí deberían enviarse con el indice 1)
lunes: X
martes: X
miércoles:
jueves:
viernes: X
En teoria el array debería ser (indice=valor)
lunes: 0=1,1=1
martes: 0=0,1=1
miércoles: 0=1,1=0
jueves: 0=0,1=0
viernes: 0=1,1=1
Pero lo que al final obtendrás algo completamente diferente porque no se envían los checkbox no marcados, por lo cual los indices no concuerdan
lunes: 0=1,1=1
martes: 0=1
miércoles: 0=1
viernes: 0=1,1=1
Para evitar esto debes indicar manualmente el indice con el cual se enviarán los valores en el array, así sabrás que valor es de que curso...
Código PHP:
Ver original<?php
//más código....
echo "
</td>
<td align='center'><input name= ". $l++ ." type='checkbox' value='x'></td>
<td align='center'><input name= 'm[".$i."]' type='checkbox' value='x'></td>
<td align='center'><input name= 'mi[".$i."]' type='checkbox' value='x'></td>
<td align='center'><input name= 'j[".$i."]' type='checkbox' value='x'></td>
<td align='center'><input name= 'v[".$i."]' type='checkbox' value='x'></td>
<td align='center'><input name= 's[".$i."]' type='checkbox' value='x'></td>
<td align='center'><input name= 'd[".$i."]' type='checkbox' value='x'></td>";
//más código....