haber cuando creas un array de datos por ejemplo
 
name="id[]" 
debe este tener un value que es el que viene de base de datos.... 
<input type="chekbox" name="id[]" value="<?php echo "$datos[id]";?>">
<input type="chekbox" name="id[]" value="<?php echo "$datos[id]";?>">
<input type="chekbox" name="id[]" value="<?php echo "$datos[id]";?>">
<input type="chekbox" name="id[]" value="<?php echo "$datos[id]";?>"> 
donde $datos id es el valor que viene de base de datos ok, entonces en este caso hay 4 chek con valores en sus id 5,6,7 y 8 y nombres 1 al 4
si marco el 1 y el 4 solamente debería enviar los valores 5 y 8 
esos los recuperas con la funcion explode(); 
y puedes tratarlos con IN en las sentencias SQL espero se entienda... 
si no le echamos otro cable   
FE de Erratas la función es implode() :P te dejo un ejemplo  
 Código PHP:
    $lista=implode(',',$_POST['id']); 
//por ejemplo eliminamos de una tabla solo los selecionados
mysql_query (" DELETE FROM TU_TABLA WHERE id IN(".$lista.")") or die ("Error ".mysql_error()); 
    
  saludos