PHP / JSON – объект stdClass

Я еще новичок в массивах. Мне нужна помощь – у меня есть JSON, и я запускаю ее через некоторый PHP, который в основном разбирает JSON и декодирует его следующим образом:

stdClass Object ( [2010091907] => stdClass Object ( [home] => stdClass Object ( [score] => stdClass Object ( [1] => 7 [2] => 17 [3] => 10 [4] => 7 [5] => 0 [T] => 41 ) [abbr] => ATL [to] => 2 ) 

Это действительно продолжается и продолжается – НО – моя проблема – это stdClass Object . Мне нужно иметь возможность называть это в цикле for, а затем перебирать каждый раздел (home, score, abbr, to и т. Д.). Как я могу это сделать?

Solutions Collecting From Web of "PHP / JSON – объект stdClass"

Вы можете использовать get_object_vars() для получения массива свойств объекта или вызвать json_decode() с помощью json_decode($string,true); для получения ассоциативного массива.


Пример:

 <?php $foo = array('123456' => array('bar' => array('foo'=>1,'bar'=>2))); //as object var_dump($opt1 = json_decode(json_encode($foo))); echo $opt1->{'123456'}->bar->foo; foreach(get_object_vars($opt1->{'123456'}->bar) as $key => $value){ echo $key.':'.$value.PHP_EOL; } //as array var_dump($opt2 = json_decode(json_encode($foo),true)); echo $opt2['123456']['bar']['foo']; foreach($opt2['123456']['bar'] as $key => $value){ echo $key.':'.$value.PHP_EOL; } ?> 

Вывод:

 object(stdClass)#1 (1) { ["123456"]=> object(stdClass)#2 (1) { ["bar"]=> object(stdClass)#3 (2) { ["foo"]=> int(1) ["bar"]=> int(2) } } } 1 foo:1 bar:2 array(1) { [123456]=> array(1) { ["bar"]=> array(2) { ["foo"]=> int(1) ["bar"]=> int(2) } } } 1 foo:1 bar:2 

Вы можете выполнять итерацию на stdClass с помощью foreach .