SMS всем им за один день. Мне нужно отправить 100 номеров в один запрос, как я могу отправить 100 номеров в 10 запросов путем разделения, API? Вообще, можно ли управлять запросами с помощью цикла?
Почему повторяется дважды?
// public function sendToMultipleRecipients(array $recipients): array
// {
// $limint = 99;
// $results = [];
// $count_array = count($recipients);
// for ($i = 0; $i < ceil($count_array/$limint); $i++) {
// $count = $limint * ($i+1);
// $recipient = array_slice($recipients, $count-$limint, $count);
// for ($j=0; $j < count($recipient); $j++){
// $result = $this->sendToRecipient($recipient[$j]);
// }
// $results[] = $result;
// }
//
// return $results;
// }
public array $phones; public int $limitPerQuery; publlic array $limitArrays; #Получаем список номеров, которым надо отправить СМС и складываем их в массив id => phone $phones = ArrayHelper::map(PhonelistModel::find()->all(), 'id', 'phone'); #Делим получившийся массив на подмассивы размером в 100 элементов каждый массив $limitPerQuery = 100; $limitArrays = array_chunk($phones, $limitPerQuery); #Перебираем получившиеся подмассивы и отправяем их в функцию отправки СМС либо массивом либо по 1 номеру за раз foreach ($limitArrays as $key => $phonesByLimit) { $this->sendSMSFunction($phonesByLimit); # OR foreach ($phonesByLimit as $phone) { $this->sendSMSFunction($phone); } } Как-то так)
public function sendToMultipleRecipients(array $recipients): array { $limitPerQuery = 100; $results = []; $limitArrays = array_chunk($recipients, $limitPerQuery); foreach ($limitArrays as $key => $recipient) { $result = $this->sendToRecipient($recipient); $results[] = $result; } return $results; } Это так?
Обсуждают сегодня