How to get a list of all the selected values ​for a field programmatically?
Because fields can have multiple values both of the methods you describe will return an array. Each of those array items will itself be an array, of all the possible columns for the field. In the case of text fields the only column you really need to worry about is the value column.

Assuming your particular field does not accept multiple values, or it does and you only want the first value, the following should work:

$items = field_get_items('node', $node, 'field_countries', $node-&gt;language);
$item = array_shift($items);
$value = $item['value'];


or

$value = $node-&gt;field_countries[$node-&gt;language][0]['value'];