Я пытаюсь сделать вложенный для обработки для в блоках, все работает нормально, когда у меня есть значения 32, но когда я в сумме 31, 4-й блок не обрабатывается. в чем может быть проблема?
Для l oop не следует использовать Range из-за проблемы с памятью.
$start = 1; //170003
$total = 32;
$chunksize=10;
$block = 1;
for ($i=$start; $i <= $total; $block++){
echo "Block: ".$block."/".($total/$chunksize).PHP_EOL;
for ($j=0; $j < $chunksize; $j++){
//if($i === $total) break;
echo "[".$block."] ".$i."/".$total." [Rest: ".($total-$i)."] " .PHP_EOL;
if($i === $total) break;
$i++;
}
echo "------------------------------".PHP_EOL;
if($i === $total) break;
}
Наша производительность:
Block: 1/3.2
[1] 1/32 [Rest: 31]
[1] 2/32 [Rest: 30]
[1] 3/32 [Rest: 29]
[1] 4/32 [Rest: 28]
[1] 5/32 [Rest: 27]
[1] 6/32 [Rest: 26]
[1] 7/32 [Rest: 25]
[1] 8/32 [Rest: 24]
[1] 9/32 [Rest: 23]
[1] 10/32 [Rest: 22]
------------------------------
Block: 2/3.2
[2] 11/32 [Rest: 21]
[2] 12/32 [Rest: 20]
[2] 13/32 [Rest: 19]
[2] 14/32 [Rest: 18]
[2] 15/32 [Rest: 17]
[2] 16/32 [Rest: 16]
[2] 17/32 [Rest: 15]
[2] 18/32 [Rest: 14]
[2] 19/32 [Rest: 13]
[2] 20/32 [Rest: 12]
------------------------------
Block: 3/3.2
[3] 21/32 [Rest: 11]
[3] 22/32 [Rest: 10]
[3] 23/32 [Rest: 9]
[3] 24/32 [Rest: 8]
[3] 25/32 [Rest: 7]
[3] 26/32 [Rest: 6]
[3] 27/32 [Rest: 5]
[3] 28/32 [Rest: 4]
[3] 29/32 [Rest: 3]
[3] 30/32 [Rest: 2]
------------------------------
Block: 4/3.2
[4] 31/32 [Rest: 1]
[4] 32/32 [Rest: 0]
------------------------------
всего $ = 32; // В порядке
$ total = 31; // Я не вижу Блок 4
Спасибо !!