尝试运行for循环切片数组每30个点

时间:2017-12-12 20:00:05

标签: php arrays for-loop

我试图一次30个数组,以便向端点发送呼叫,该端点一次只能重新接收30个代码。现在我在阵列中有大约203行。一切都很好,直到第四轮,我不知道为什么索引(init和endt)我已经设置,搞砸了,切片不再工作,这反过来使得无法调用端点。这是代码:

requestarr[]

request[]包含全部203个索引,{{1}}包含每个循环发送的30个索引切片。值得注意的是,我的阵列具有跟踪联邦快递号码的“自定义”键。在第4个循环中,init变为120,endt变为113.我不确定这是怎么发生的或原因。毋庸置疑,接下来的3个循环中,endt减少了7,然后减少了34,最后减少了1.没有代码可以减少endt。所以我不确定这是怎么回事。有任何想法吗?如果您需要更多信息或更多代码,我将很乐意为您提供帮助。

2 个答案:

答案 0 :(得分:3)

要将项目拆分为块 - 请使用array_chunk

$chunks = array_chunk($your_data, 30);
foreach ($chunks as $chunk) {
    // send $chunk to endpoint
}

答案 1 :(得分:1)

$arrcount = ceil(count($requestarr['SelectionDetails'])/30);

for ($i=0; $i < $arrcount; $i++) { 
    $request['SelectionDetails'] = array_slice($requestarr['SelectionDetails'], $i * 30, 30);
    //call to endpoind and other code here....
}

array_slice可以使长度参数长于数组。你只需要移动起点。