Как вернуть конкретные данные из json_decode

Я обращаюсь к данным из API, используя json_decode. Код, который я имею, возвращает массив ВСЕХ дат (см. Ниже), но я хочу вернуть конкретные данные, такие как «имя» или «локаль».

$json_string = 'http://api.duedil.com/open/search?q=Surfing%20Sumo&api_key=THE-API-KEY';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata,true);
echo '<pre>';
var_dump($obj);

Это то, что возвращается (это сокращенно для экономии места здесь):

array(1) {
["response"]=>
array(2) {
["pagination"]=>
string(79) "http://api.duedil.com/open/search?query=Duedil&total_results=6&limit=5&offset=5"["data"]=>
array(5) {
[0]=>
array(4) {
["company_number"]=>
string(8) "06999618"["locale"]=>
string(14) "United Kingdom"["name"]=>
string(14) "Duedil Limited"["uri"]=>
string(51) "http://api.duedil.com/open/uk/company/06999618.json"}

1

Решение

Вы могли бы просто использовать

$name = $obj['response']['data'][0]['name'];
$locale = $obj['response']['data'][0]['locale'];

если у вас есть несколько возвращаемых значений, вы можете зациклить их

foreach ($obj['response']['data'] as $item) {
$name = $item['name'];
$locale = $item['locale'];
}
1

Другие решения

попробуйте этот пример кода:

 <?php
$data =  isset($obj['response']['data'])?$obj['response']['data']:FALSE;

if(is_array($data))
{
foreach ($data as $value) {
echo $value['name'];
echo $value['locale'];
}
}
1

По вопросам рекламы [email protected]