Вы неправильно перемещаетесь по объекту.
foreach($data['data']['item'] as $item) {
$countries[] = $item['description'];
}
Это может помочь, если вы просматриваете данные с пробелами.
{
"valid": true,
"id": "0",
"data": {
"@type": "genericObjectArray",
"item": [
{"id": "DE", "description": "Deutschland"},
{"id": "ES", "description": "España"},
{"id": "FR", "description": "France"},
{"id": "PT", "description": "Portugal"},
{"id": "UK", "description": "United Kingdom"},
{"id": "US", "description": "United States"}
]
}
}