Penso che il tuo codice con queste due modifiche possa funzionare:
	Codice PHP:
	
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['btn_articolo'])) {
    $ab = NULL;
    if(!is_array($_POST['abilitato'])//Nel caso in cui nessun elemento abbia la spunta
        $_POST['abilitato']=array();
    for ($i = 0; $i < count($_POST['codice']); $i++) {
        if (array_search($_POST['codice'][$i],$_POST['abilitato'])!==false) {//MODIFICA
            $ab = 1;
        } else {
            $ab = 0;
        }
        updateArticoli($_POST['window'][$i], $ab, $_POST['codice'][$i]);
    }
}
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="submit" value="Submit" name="btn_articolo" />
    <?php
    foreach (getArticoli() as $var) {
        $selected = '';
        if ($var['abilitato'] == 1) {
            $selected = 'checked="checked"';
        }
        echo '
';
        echo $var['articolo_codice'];
        echo ' - <input type="text" name="window[]" value="' . $var['window'] . '" size="3" />';
        echo ' - <input type="checkbox" name="abilitato[]" value="' . $var['articolo_codice'] . '" ' . $selected . ' />';
        echo '<input type="hidden" name="codice[]" value="' . $var['articolo_codice'] . '" />';
        echo '</p>';
    }
    ?>
    <input type="submit" value="Submit" name="btn_articolo" />
</form>