Я не уверен, правильно ли я это сделал:
У меня есть общее количество элементов, скажем 624. Я хотел бы сделать цикл, который отправляет 7 запросов, первые 6 или более 100 элементов каждый, последний за оставшиеся 24.
Так что я немного посчитал, чтобы выяснить, сколько циклов мне нужно пройти.
// this is the total number of items
$total = $result['total_items'];
// if we split the total into such chunks
$chunksize = 50;
// we will get a rest of so many items
$rest = $total % $chunksize;
// so including the query for the rest, we will have to repeat the query so many times
$queries_no = (($total-$rest)/$chunksize)+1;
Выше кажется немного неуклюжим. Это правильный путь?
PS: После этого я могу повторить запрос необходимое время.
// prep loop
$i = 0;
$requested = 0;
$subscribers = [];
while ($i <= $queries_no){
// last item
if($i == $queries_no){
$chunksize = $rest;
}
$result = $this->monkeyApp->get('lists/'.$list_id.'/members?offset='.$requested.'&count='.$chunksize);
$subscribers = array_merge($subscribers,$result['members']);
$requested = $requested + $chunksize;
$i++;
}