2015-02-24 6 views
0

Я пытаюсь получить оценку team1, но я не могу понять, как это вывести. Пока у меня есть это, чтобы работать, где $ obj - выход json.Извлечение объектов внутри json-массива

$obj->recent 

JSON

"recent": [ 
    [ 
     { 
     "match_id": "64886", 
     "has_vods": false, 
     "game": "dota2", 
     "team 1": { 
      "score": "", 
      "name": "Wheel Whreck While Whistling", 
      "bet": "7%" 
     }, 
     "team 2": { 
      "score": "", 
      "name": "Evil Geniuses DotA2", 
      "bet": "68%" 
     }, 
     "live in": "1m 42s", 
     "title": "Wheel Whreck... 7% vs 68% Evil...", 
     "url": "", 
     "tounament": "", 
     "simple_title": "Wheel Whreck... vs Evil...", 
     "streams": [] 
     } 
] 
+0

'$ obj = json_decode ($ json);'?! – Rizier123

+3

'$ obj-> recent [0] [0] -> {'team 1'} -> score'? –

ответ

2

Вы должны использовать json_decode(); Эта функция возвращает правильный объект с массивами и объектами внутри. Теперь вам нужно проверить, что такое объект и что такое массив.

$obj = json_decode($obj, true); 
$obj->recent; //array 
$obj->recent[0]; //first element of array 
$obj->recent[0][0]; //first element of second array 
$obj->recent[0][0]->{'team 1'}; //access to object team 1 
$obj->recent[0][0]->{'team 1'}->score; //access to property of object team 1 

this полезен для понимания того, что происходит;

Вы также можете проверить пример на json_decode documentation

Если вы используете функцию var_dump на $ OBJ она покажет вам, что это массив, и что является объектом.

0

Вы хотите использовать json_decode, чтобы получить это в массив. Похоже, что recent - это массив массивов объектов. Таким образом, вы будете делать что-то вроде

$json = json_decode($obj->recent, true); 
$team1 = $json[0][0]['team 1']; //should return array 
$score = $team1['score'] 

редактировать: Спасибо за комментарий, пропускало true как вторые пары в json_decode

+3

, если вы не передадите true как второй параметр json_decode, результатом будет объект, а не массив, и это вызовет ошибки. –

+0

исправлено, спасибо – wilkesybear

Смежные вопросы