Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как правильно обработать массив из ответа на запрос vk api
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Как правильно обработать массив из ответа на запрос vk api

Страниц (1): [1]
 

1. НОВИЧЕК_ПРО - 13 Июня, 2016 - 02:22:40 - перейти к сообщению
Здравствуйте. Начинаю разбираться с работой с api, практикуюсь на vk. Вроде все получается, но хотелось бы чтобы пояснили как лучше обрабатывать и выводить большие массивы.

Есть такой запрос (методом wall.get- список записей со стены):
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://api.vk.com/method/wall.get?domain=mrhool&count=1&filter=owner


Получаю ответ:
Спойлер (Отобразить)



Теперь что делаю дальше:
PHP:
скопировать код в буфер обмена
  1.  
  2. $url = 'http://api.vk.com/method/wall.get?domain=mrhool&count=1&filter=owner';
  3. $response = json_decode(file_get_contents($url),true);
  4.  
  5. echo $response['response'][1]['text']; // Выводит текст из записи
  6. echo $response['response'][1]['attachment']['photo']['src']; // Выводит ссылку на картинку
  7.  


Вытекает вопрос- как правильно выводить такой массив, если к примеру число записей не 1, а допустим 50 и мне нужно вывести из каждой тот же текст.

Вот до чего пока сам дошел:
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach ($response['response'][1] as $k=>$v)
  3.     echo "$k - $v<br />";
  4.  

Но как сделать, чтобы выводило информацию из 50 записей? Понятно, что нужен счетчик в цикл, но посчитать количество массивов не удается, всегда равен 1.

Буду безумно благодарен за помощь!
2. OrmaJever - 13 Июня, 2016 - 13:37:16 - перейти к сообщению
НОВИЧЕК_ПРО пишет:
как правильно выводить такой массив, если к примеру число записей не 1, а допустим 50 и мне нужно вывести из каждой тот же текст.

что значит как? Циклом, вы даже почти верно его написали
PHP:
скопировать код в буфер обмена
  1. foreach ($response['response'] as $k=>$v)
  2.     echo "id: $k - text: {$v['text']}<br />";
3. НОВИЧЕК_ПРО - 13 Июня, 2016 - 14:02:02 - перейти к сообщению
ух,спасибо, что-то видимо заработался, действительно все просто Не понял
А не подскажете еще?
Можно ли вывести два данных массива в одном цикле? Или если их еще больше, как в моем случае в ответе пришло приблизительно 6 массивов.

PHP:
скопировать код в буфер обмена
  1.  
  2. $response['response'][1]['text'];
  3. $response['response'][1]['attachment']['photo']['src'];
4. OrmaJever - 13 Июня, 2016 - 17:08:58 - перейти к сообщению
НОВИЧЕК_ПРО пишет:
Можно ли вывести два данных массива в одном цикле?

наверное не поверите - можно! Хоть 10
PHP:
скопировать код в буфер обмена
  1. foreach ($response['response'] as $k=>$v) {
  2.     echo $v['text'] . "<br />";
  3.     echo $v['attachment']['photo']['src'] . "<br />";
  4.     echo $v[...];
  5. }
5. НОВИЧЕК_ПРО - 13 Июня, 2016 - 17:21:39 - перейти к сообщению
Туплю. Спасибо большое! Закатив глазки

 

Powered by ExBB FM 1.0 RC1