Неправильные значения из массива - PullRequest
1 голос
/ 22 мая 2011

Я получаю неправильные значения из массива.

$json = file_get_contents('http://onleague.stormrise.pt:8031/OnLeagueRest/resources/onleague/Utils/Countries');
$data = json_decode($json, TRUE);
$countries = array(); 
foreach($data['data'] as $item) {
    $countries[] = $item['description'];
}
print_r($countries);

результаты:

Array ( [0] => g [1] => )

Ответы [ 2 ]

5 голосов
/ 22 мая 2011

Вы неправильно перемещаетесь по объекту.

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"}
        ]
    }
}
1 голос
/ 16 августа 2013

У меня была такая сумасшедшая проблема, как печать массива с помощью print_r, получающего значение в позиции и получающего это значение по индексу, получая другое (значение, которое print_r показывает в другой позиции), это мне очень помогло: Какпреобразовать массив в объект в PHP? .
Я создал stdClass, как еще один ответ на тот же вопрос, что и выше, и повторил размещение значений на

 $obj->"X".index = value 

, получив что-то вроде

* 1008.*

со значениями, после того, как использовал его, чтобы заполнить мой настоящий объект как

 $realobj1->myprop1 = $obj2->p1...   

Это неприятно, но решило мою проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...