Normalmente cuando no marcas un checkbox, no se envia, es decir, solo recibes los que estan marcados, por lo que tu ciclo no deberia estar basado en esos campos, sino en un indice o contador por separado.
Suponiendo que cargaste todas las ID's en un array
Código PHP:
Ver originalforeach($ids as $index => $id) {
if(isset($_POST['finish][$index])) { // Checkbox checked
} else {
// Checkbox not checked
}
}