PHP所需字段的数组

Problem:

if (empty($_POST) === false) {
        $required_fields = array('year', 'semester', 'title', 'number', 'handout', 'weight', 'handout', 'handin', 'feedback', 'brief', 'sub_details', 'add_note');
        foreach($_POST as $key=>$value) {
            if(empty($value) && in_array($key, $required_fields) === true) {
                $errors[] = '<p class="warning">Fields marked with an asterisk are required</p>';
                //var_dump($_POST);
                break 1;
            }
        }
    }

Output section:

else if (empty($errors) === false) {
        echo output_errors($errors);
    }

I'm performing some validation on a form, however I am getting an error when outputting my errors array, even if the fields are entered and aren't empty, I still get the error appearing. I've tried changing the empty($value) to isset, however it doesn't seem to make a difference.