我有一个包含2000多个项目的手机号码数组:
$mobiles = array("number 1, number 2, number 3, ...)
我想将此数组拆分为100个细分,然后在每个数组中执行:看到我的代码:
$username='xxxxxxx';
$password='xxxxxx';
$sendNumber='1000100';
$message= 'text text';
$client=new SoapClient("http://example.com/services/smsService.svc?wsdl");
//spilit mobile number to 100 segments
$spilited_mobiles = array_chunk($mobiles,100,true);
foreach ($spilited_mobiles as $numbers){
$params=array('username'=>$username,'password'=>$password,
'senderNumber'=>$sendNumber,'recipientNumbers'=>$numbers,'message'=>$message,'saveType'=>1);
$result=$client->sendMessage($params);
}
问题是它只发送前100个号码,而其他号码未循环发送谢谢
使用array_chunk
中的foreach
,然后检查。以下面的代码为例。
foreach(array_chunk($spilited_mobiles, 100) as $numbers){
$params=array('username'=>$username,'password'=>$password,
'senderNumber'=>$sendNumber,'recipientNumbers'=>$numbers,'message'=>$message,'saveType'=>1);
$result=$client->sendMessage($params);
}
您需要添加另一个foreach
以循环100。
此$numbers
是一个包含100个手机号码的数组。
'recipientNumbers'=>$numbers
解决方案>>
$spilited_mobiles = array_chunk($mobiles, 100, TRUE); foreach ($spilited_mobiles as $numbers){ //Loop the 100 foreach($numbers as $number){ $params=array('username'=>$username,'password'=>$password, 'senderNumber'=>$sendNumber,'recipientNumbers'=>$number,'message'=>$message,'saveType'=>1); $result=$client->sendMessage($params); } }
您可以尝试示例代码here