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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как правильно обработать массив из ответа на запрос vk api

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
НОВИЧЕК_ПРО
Отправлено: 13 Июня, 2016 - 02:22:40
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2016  


Помог: 0 раз(а)




Здравствуйте. Начинаю разбираться с работой с 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.

Буду безумно благодарен за помощь!
 
 Top
OrmaJever
Отправлено: 13 Июня, 2016 - 13:37:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




НОВИЧЕК_ПРО пишет:
как правильно выводить такой массив, если к примеру число записей не 1, а допустим 50 и мне нужно вывести из каждой тот же текст.

что значит как? Циклом, вы даже почти верно его написали
PHP:
скопировать код в буфер обмена
  1. foreach ($response['response'] as $k=>$v)
  2.     echo "id: $k - text: {$v['text']}<br />";


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
НОВИЧЕК_ПРО
Отправлено: 13 Июня, 2016 - 14:02:02
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2016  


Помог: 0 раз(а)




ух,спасибо, что-то видимо заработался, действительно все просто Не понял
А не подскажете еще?
Можно ли вывести два данных массива в одном цикле? Или если их еще больше, как в моем случае в ответе пришло приблизительно 6 массивов.

PHP:
скопировать код в буфер обмена
  1.  
  2. $response['response'][1]['text'];
  3. $response['response'][1]['attachment']['photo']['src'];

(Отредактировано автором: 13 Июня, 2016 - 14:20:08)

 
 Top
OrmaJever
Отправлено: 13 Июня, 2016 - 17:08:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




НОВИЧЕК_ПРО пишет:
Можно ли вывести два данных массива в одном цикле?

наверное не поверите - можно! Хоть 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. }


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
НОВИЧЕК_ПРО
Отправлено: 13 Июня, 2016 - 17:21:39
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2016  


Помог: 0 раз(а)




Туплю. Спасибо большое! Закатив глазки
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB