如果我知道我有n条记录,并且我想一次对一组r记录做一些事情(由于n非常大,基本上是批量处理n),算法是什么?任何语言都可以(虽然我使用的是PHP)。
算法应该记住,在最后的迭代中,可能没有足够的记录来创建一个完整的r组。
Recall: to find the total number of r combinations from a set of n records,
use the combination formula:
C(n,r) = n! / r!(n-r)!
- 编辑 - 如果其他人感兴趣:我有一个大约10K行的CSV(字符串)。我正在寻找以X块的形式处理CSV的每一行的最有效方法。
例如,我需要通过API将数据从CSV发送到第三方。 API只允许一次发送X记录(这就是我需要分块的原因)。
答案 0 :(得分:2)
$chunks = array_chunk($arr, $r);
foreach($chunks as $chunk)
{
deal_with($chunk);
}