我有一个我正在使用的API,它每5秒钟接受一次呼叫,比它不会响应的任何时间都多。在每次调用中,它将在一批中接受5条记录。我有一个1000条记录的列表,我需要使用api来检查,所以我想做的是每5秒钟把我的记录列表分成5个批次发送给它。
我可以让它大部分工作,但我不能计算的一点是分解记录列表,这是一个成批数组,你知道怎么做吗?
这是我在下面使用的代码,但是它每5秒钟输出一次数组的每个单独部分,而不是每5秒钟输出一次。
$my_array = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
foreach ($my_array as $key => $value) {
sleep (5);
echo $value;
}
使用
if(($key + 1) % 5 == 0){ sleep(5);}
在你的循环中
如果它对其他人有帮助,我写了一个函数,允许您以块的形式处理数组。描述和细节在这里:
https://totaldev.com/php-process-arrays-batches/
mine和array\u chunk
之间的主要区别在于,mine不返回较小数组的数组。它将用户定义的函数作为处理小批量的闭包。以下是函数:
// Iterate through an array and pass batches to a Closure
function arrayBatch($arr, $batchSize, $closure) {
$batch = [];
foreach($arr as $i) {
$batch[] = $i;
// See if we have the right amount in the batch
if(count($batch) === $batchSize) {
// Pass the batch into the Closure
$closure($batch);
// Reset the batch
$batch = [];
}
}
// See if we have any leftover ids to process
if(count($batch)) $closure($batch);
}
您可以这样使用它:
// Use array in batches
arrayBatch($my_array, 5, function($batch) {
// Do whataver you need to with the $batch of 5 items here...
sleep (5);
});
你可以有第二个循环
$batch_of = 5;
$batch = array_chunk($my_array, $batch_of);
foreach($batch as $b) {
foreach ($b as $key => $value) {
echo $value;
}
sleep (5);
}
这将按预期工作
我有一个JSON文件,其中包含世界各地的大学列表。我想只获得特定的大学,其中数组中的字段与我需要选择的内容相匹配。我面临的问题是,每所大学都有自己的身份证号,这使得我无法弄清楚如何迭代数组。JSON文件可以在这个GitHub回购中找到。 使我将JSON文件转换为数组的代码: 我得到的一个样本是: 什么是最好的或适当的方式打印出来只有大学与或例如? 我读了Foreach循环上的留档和例子。但还是得不
生成器迭代 手动迭代生成器,递归执行 AsyncTask::next,调用Generator::send方法将将yield值作为yield表达式结果。 yield表达式可能是一个异步调用,我们这里为之后把异步调用的结果作为yield表达式结果铺垫。 yield外侧括号在PHP5必须,PHP7不需要。 如, $ip = (yield async_dns_lookup(...) ); ^
问题内容: 我正在尝试使用JADE迭代JSON文档。 我的服务器(运行node.js + express)正在对.get()请求执行以下操作, 这就是它呈现给客户端的东西。 我已经阅读了有关迭代数组的jade文档,并且我认为对于JSON来说,它是相同的,但是它不起作用。它只是显示一个空白。当我尝试这个 它将显示JSON文档。但是当我尝试这个 并显示空白。应该显示的时间是“电视”。如果有人可以帮助我
本文向大家介绍Python迭代器与可迭代与生成器,包括了Python迭代器与可迭代与生成器的使用技巧和注意事项,需要的朋友参考一下 示例 一个迭代是一个对象,可以返回一个迭代器。具有状态且具有__iter__ 方法并返回迭代器的任何对象都是可迭代的。也可能是没有状态的对象,该对象实现了__getitem__方法。-该方法可以获取索引(从零开始),并IndexError在索引不再有效时引发。 Py
我有3个WinJSpromise,我想按顺序调用,直到其中一个promise完成而没有错误。 伪代码: 当然,我不能使用数组中的每个。因为这将并行执行promise。 所以首先迭代应该是顺序的,如果promise返回错误,下一个promise应该尝试,否则它应该返回成功promise的值。如果没有promise返回成功,那么整个循环应该指示失败。
给定以下对象: 是否可以使用ng repeat一次迭代所有值? 我的动机是:1。我在<代码>中使用ng-repeat 有什么想法吗? 谢谢!