У меня есть массив ключей / значений PHP, и я хочу получить оттуда значение и отобразить его в div.
Пока у меня есть:
$homepage = file_get_contents('http://graph.facebook.com/1389887261/reviews'); $parsed = json_decode($homepage);
Я хочу получить значения из массива пар ключ / значение следующим образом:
foreach ($parsed as $key => $values){ echo $values['rating']; }
Но это не возвращает значение. Что я делаю не так?
Используйте ссылку на индекс foreach в PHP, это дает вам возможность получить ключ или значение.
$parsed = json_decode($homepage,true); foreach ($parsed['data'] as $key => $values){ echo $values['rating']; }
http://www.php.net/manual/en/control-structures.foreach.php
$rating = $parsed->data[0]->rating;
У вас работает?
сделано путем сброса вашего примера)
foreach ($parsed->data as $key => $values){ echo $values->rating;}
foreach ($parsed['data'] as $key => $values){ echo $values['rating']; }
Примечание , json_decode () возвращает объект по умолчанию. Вам нужно обновить следующее, чтобы сделать выше:
$parsed = json_decode($homepage, true);
Значения являются объектами stdClass, а не массивами.Итак, для цикла:
$homepage = file_get_contents('http://graph.facebook.com/2345053339/reviews'); $parsed = json_decode($homepage); foreach($parsed->data as $values) { echo 'Rating:'.$values->rating; }
Примечание. Я использую оператор -> для доступа к свойствам объекта ...
->
Если вы не передадите второй параметр, вы получите объект вместо массива, см. http://php.net/json_decode
сделает все за вас.
Корневым узлом для "parsed" являются данные, которые являются массивом, поэтому вы, вероятно, хотите ..
foreach($parsed['data'] as $key => $value) { echo $value['rating']; }
Рейтинг - это подмассив массива ['data'], поэтому: