Using hook_form_alter(), how do I write a multi-select field? So I have a field that displays locations a list of multi-select locations.

The select has a name of field_location

I want to turn access to this off, and then rebuild the field with a limited list of  locations that I will populate. 

function rm_report_form_alter(&amp;$form, &amp;$form_state){
    if (arg(0) == 'node' &amp;&amp; $form['form_id']['#value'] == 'c_node_form') {
        $form['field_location']['#access'] = FALSE;
    }   
}


The problem:  Not sure how to rewrite a multi-select field.
I think you are searching for the #multiple attribute:
multiple
Used by: select
Description: Indicates whether the user may select more than one item.
Values: TRUE or FALSE
&lt;?php
return array(
  '#type' =&gt; 'select',
  '#title' =&gt; $title,
  '#default_value' =&gt; $value,
  '#options' =&gt; $options,
  '#description' =&gt; $description,
  '#multiple' =&gt; $multiple,
  '#size' =&gt; $multiple ? min(12, count($options)) : 0,
  '#weight' =&gt; -15,
);
?&gt;