Quanto dice alcio è verissimo... e molto diffuso in php.
Tratta dal form helper di CI:

Codice PHP:
function form_dropdown($name ''$options = array(), $selected = array(), $extra '')
    {
        if ( ! 
is_array($selected))
        {
            
$selected = array($selected);
        }

        
// If no selected state was submitted we will attempt to set it automatically
        
if (count($selected) === 0)
        {
            
// If the form name appears in the $_POST array we have a winner!
            
if (isset($_POST[$name]))
            {
                
$selected = array($_POST[$name]);
            }
        }

        if (
$extra != ''$extra ' '.$extra;

        
$multiple = (count($selected) > && strpos($extra'multiple') === FALSE) ? ' multiple="multiple"' '';

        
$form '<select name="'.$name.'"'.$extra.$multiple.">\n";

        foreach (
$options as $key => $val)
        {
            
$key = (string) $key;

            if (
is_array($val) && ! empty($val))
            {
                
$form .= '<optgroup label="'.$key.'">'."\n";

                foreach (
$val as $optgroup_key => $optgroup_val)
                {
                    
$sel = (in_array($optgroup_key$selected)) ? ' selected="selected"' '';

                    
$form .= '<option value="'.$optgroup_key.'"'.$sel.'>'.(string) $optgroup_val."</option>\n";
                }

                
$form .= '</optgroup>'."\n";
            }
            else
            {
                
$sel = (in_array($key$selected)) ? ' selected="selected"' '';

                
$form .= '<option value="'.$key.'"'.$sel.'>'.(string) $val."</option>\n";
            }
        }

        
$form .= '</select>';

        return 
$form;
    }

/*esempio di utilizzo*/
$array_select_option = array(
=> 'html',
=> 'php',
3=> 'css'
);
echo 
form_dropdown('name_my_select'$array_select_option);