Я считаю, что ваше поведение происходит, потому что вы закрываете файл после первой записи и никогда не открываете его снова, пока не получите 100-ю запись.
Я думаю, что лучший способ сделать то, что вы хотите, - открыть первый файл.вне цикла, и если получено 100 записей, закройте и откройте новый файл.
Попробуйте что-то вроде этого:
$i = 0;
$fp = fopen(time(). '.csv', 'w');
foreach($dizi as $fields) {
$i++;
if ($i % 100 == 0) {
fclose($fp);
$fp = fopen(time(). '.csv', 'w');
}
fputcsv($fp, $fields,';','"');
}
fclose($fp);
Обратите внимание, что если $dizi
пусто, весь этот код можно избежать илибудет создан пустой файл.