Но метод get.stats позволяет получить данные исключительно по 1 id группы. Откуда там форич взялся, лол?
Вот для понимания накатал небольшой скрипт, без проверок на ошибки от вк(!):
<?php
/**
* Created by PhpStorm.
* User: Ahen
* Date: 22.08.2017
* Time: 7:10
*/
// Токен пользователя с разрешением stats
$access_token = '';
// Массив с id групп
$groups = [1, 2, 3];
/**
* @param $params array - Массив параметров запроса, содержит group_id, date_from, date_to.
* @param $access_token - Строка, содержащая токен пользователя.
* @return array - Массив, содержащий group_id и views
*/
function statsGet($params, $access_token)
{
//Запрос, обернутый в json_decode
$request = json_decode(file_get_contents("https://api.vk.com/method/stats.get" .
"?group_id=" . $params["group_id"] .
"&date_from=" . $params["date_from"] .
"&date_to=" . $params["date_to"] .
"&access_token=" . $access_token .
"&v=5.68"));
// Если $request->response[0]->views существует, то присваиваем его значение к $views.
// Иначе присваиваем $views значение 0.
if ($request->response[0]->views) {
$views = $request->response[0]->views;
} else {
$views = 0;
}
// Возвращаем массив
return ["group_id" => $params["group_id"], "views" => $views];
}
// Объявляем $result как массив
$result = array();
// Обходим форичем массив id групп
foreach ($groups as $group) {
// Пушим результат из функции в массив
$result[] = statsGet(
["group_id" => $group,
"date_from" => "2013-08-08",
"date_to" => "2013-09-08"],
$access_token);
// Слип на 1/3 секунды, чтобы не ловить ошибок вк
usleep(334000);
}
// Простой вывод для теста
foreach ($result as $item) {
echo "В группе с id: {$item['group_id']} просмотров: {$item['views']} <br/>";
}