how to empty the first select option with form api?
Add a empty value setting to the form array:

$form[$key] = array(
  ..
  '#empty_value' =&gt; '',
  ..
);


That will add a - Select - option to the list that will not pass a required validation if the user leaves it on - Select -.

Don't add an empty value to the #options array '' =&gt; t('Please select'). That will still pass a required validation if the user leaves that option selected.