Bien, pues al parecer los campos son los correctos, sin embargo debo hacer una observación al respecto de como se comportan algunos elementos del formulario (cosa que no corresponde al foro de PHP sino al de HTML).
Los campos tipo checkbox no son enviados si no son seleccionados, así de simple.
Aún así pongas 100 checkbox si no seleccionas ninguno entonces no recibirás nada.
¿Solución?
Simple: colocar un campo hidden antes del checkbox con el mismo nombre y un valor por defecto, si el checkbox es seleccionado entonces su valor es enviado, si no, entonces el valor del campo hidden es el que recibirás.
Sin embargo, al usar nomenclatura de arrays debes ser explícito con el índice, de otra forma todo se puede tornar extraño.
Código HTML:
Ver original<input type="hidden" name="foo[3]" value="" /> <input type="checkbox" name="foo[3]" value="bar" />
Si sigues dichas reglas no tendrás problemas.