Display Label given key for select list

5.8k views Asked by At

Given the following select list for the "field_priority" field, how can I display the label, given the key (e.g. 0, 1, 3)?

0|Low
1|Medium
2|High
3|Urgent
2

There are 2 answers

1
Clive On BEST ANSWER

You can get it nice and quickly using field_info_field():

$key = 0; // Or whatever
$field = field_info_field('field_priority');
$label = $field['settings']['allowed_values'][$key];

There's a whole host of field functions in field.info.inc, they're very handy.

0
Ludo - Off the record On

I would suggest to use list_allowed_values() instead of searching the array yourself:

$field = field_info_field('field_priority');
$options = list_allowed_values($field);
$label = $values[$key];

Or in short:

$label = list_allowed_values(field_info_field('field_priority'))[$key];