no seria manejarlos en arreglos si no de la forma:
   
Código PHP:
Ver original- $cant = $_POST['totalchecks']); 
-         while($cont < $cant) { 
-        $nombre='micheck'.$cant; 
-        if(isset ($_POST[$nombre])) 
-        { 
-        $valor = $_POST[$nombre]; 
-        } 
-        else 
-        { 
-        $valor = 0; 
-        } 
-          
-         $opciones = $_POST['preg']["$cont"]; 
-         
-         $sql = mysql_query("INSERT INTO opciones (id_pregunta, nombre, valor) VALUES ('".$id_pregunta."', '".$opciones."', '".$valor."')"); 
-         $cont++; 
-         } 
siendo "totalchecks" un input hidden donde tendra el total de checks impresos o mostrados