I have the following multi-select box in a HTML form, where user can select one or more option.
Is there a reason you can't treat the situation where the array isn't set as if it was sent with no contents?
if (!isset($_POST['eng_0']))
$_POST['eng_0'] = array();
EDIT:
Add a hidden field whenever the multiple select is present in your form:
Then check:
if (!isset($_POST['eng_0']) && isset($_POST['eng_0_exists']))
$_POST['eng_0'] = array();