Запись строк массива по файлам

104
29 мая 2021, 21:10

Имеется массив строк. Пользователь вводит число строк для разбиения и создаются файлы. Например массив состоит из 5000 строк, пользователь ввел 1000, создаются 5 файлов и туда записываются строки. Как это можно реализовать? Я начал, но не совсем понимаю как закончить

    $number = count($arr); //5000
    $v = 1000;
    $res= $number / $v;
    for($i = 1; $i <= $res; $i++ )
    {
        $fp = fopen($dir_e.'/file_'.$i.'.txt', "w"); 
        $r = $i * $res;
//тут нужно еще раз циклом пройтись
        fwrite($fp, "");
        fclose($fp);
    }

Подскажите как правильно это реализовать?

Answer 1
$v = 1000; // число, которое ввел юзер
foreach(array_chunk($arr, $v) as $index => $chunk) {
    $fp = fopen($dir_e.'/file_'.$index.'.txt', "w");
    foreach($chunk as $str) {
        fwrite($fp, $str);
    }
    fclose($fp);
}
Answer 2

Вариант с использованием одного цикла:

$number = count($arr); //5000
$v = 1000;
for ($i = 0; $i < $number; $i++) {
    if ($i % $v === 0) {
        if (isset($fp)) fclose($fp);
        $fp = fopen($dir_e.'/file_' . floor($i / $v ) . '.txt', "wb+");
    }
    fwrite($fp, $arr[$i]);
}
if (isset($fp)) fclose($fp);
READ ALSO
Как убрать ошибку в пагинации redbeanphp?

Как убрать ошибку в пагинации redbeanphp?

Строка в которой ошибка:

96
Связанные страницы в wordpress

Связанные страницы в wordpress

делаю небольшой магазин на wordpress, одно из главных требований заказчика, чтобы характеристики товаров были на отдельных страницах (нужно для...

119
yii2 unknown property error

yii2 unknown property error

ссылки на файлы: News NewsSearch composerjson Validator

79
Как выбрать последние 10 записей через for?

Как выбрать последние 10 записей через for?

У меня есть n-ое кол-во записей$p_cnt = count($xmlstr->channel->item);

96