2016-01-11 9 views
1

у меня есть это:получить переменную из JSON

{"sliders":{"c1":{"content":[{"title":1,"content_type":"image_content"}]}}} 

я могу получить титул, используя код ниже:

$decoded = json_decode($list[$i]['info'],true); 
$json = $decoded['sliders']['c1']['content'][0]); 
       $x = $json['title']; 
       echo $x; 

, когда я пытаюсь получить CONTENT_TYPE ...

$y = $json['content_type']; 
       echo $y; 

... тогда это показывает мне неопределенную ошибку индекса..что это происходит?

+2

'var_dump ($ json)' после декодирования, чтобы узнать, с чем вы работаете. Не говоря уже о том, что у вас синтаксическая ошибка. –

+0

Я могу видеть массив, который включает заголовок и content_type, поэтому я думаю, что это правильно, но я понимаю, что я не могу получить тип строки .. Заголовок появляется, потому что это целое ..:/ –

+0

Когда я тестирую ваш код, минус синтаксическая ошибка , он работает отлично. Возвращает «1image_content» при повторении «$ x» и '$ y'. Это единственный код, который у вас есть? [Пример] (http://phpfiddle.org/lite/code/qvfs-1yqb) –

ответ

1

Прежде всего: заявление & hellip;

$json = $decoded['sliders']['c1']['content'][0]); 

& hellip; должен дать ошибку синтаксиса для чрезмерного правого кронштейна )

var_dump из $ декодированного показывает это:

object(stdClass)#1 (1) { 
    ["sliders"]=> 
    object(stdClass)#2 (1) { 
    ["c1"]=> 
    object(stdClass)#3 (1) { 
     ["content"]=> 
     array(1) { 
     [0]=> 
     object(stdClass)#4 (2) { 
      ["title"]=> 
      int(1) 
      ["content_type"]=> 
      string(13) "image_content" 
     } 
     } 
    } 
    } 
} 

Таким образом, вся переменная $ decoded is объект объектов.
Объект является массив одного (в данном случае) объекта: содержание [0].

Таким образом, вы бы получить доступ к двум пунктам, как это - с помощью объекта и массива обозначения соответствующих случаев:

echo $decoded->sliders->c1->content[0]->title; 
echo $decoded->sliders->c1->content[0]->content_type; 

ИЛИ

$json = $decoded->sliders->c1->content[0]; 
echo $json->title; 
echo $json->content_type; 

& hellip; который и даст :

1 
image_content