@Jony1337

Как правильно выполнять эту задачу в php?

Не могу решить эту проблему , дело в том что есть 100 файлов .txt в одной папке нужно их по очереди открыть декодировать откуда массив и выполнять дальнейшие действия с ним потом сохранять всё это в другой файл .
Вот как я это сделал
$nm = 'tm-contents/e0.txt';
$homepage = file_get_contents($nm);
$ins = json_decode ( $homepage , true);
for ($i=1; $i <= 500; $i++) {
 
//Тут код который не имеет отношения к вопросу 

//Сохраняем после редактирования 
	$json= json_encode($rs);
	$nextNameFisier = 'rs/alx'.$i.'.txt';
$f = fopen($nextNameFisier, "w");
fwrite($f, $json); 
fclose($f);
}

Думал сделать два FOR но дело в том что первый должен перебирать названия от e0.txt до e100.txt а второй номер элемента массива , то есть в первом файле e0.txt идет массив с индексом от 1 до 500 , во втором идет от 500 до 1000 и так далее . У кого какие мысль ?
  • Вопрос задан
  • 183 просмотра
Решения вопроса 2
orlov0562
@orlov0562 Куратор тега PHP
I'm cool!
тебе надо использовать foreach, примерно так

foreach (glob('tm-contents/*.txt') as $filename) {
   $fileId = preg_replace('~\D~','',$filename); // удаляем все кроме цифр
   $data = json_decode(file_get_contents('tm-contents/'.$filename));
   foreach ($data as $key=>$arr) {
      // секретные действия с $data
   }
   file_put_contents ('rs/alx'.$fileId.'.txt', json_encode($data));
}
Ответ написан
Комментировать
@Wexter
ну так возьмите i = 0..100 для файлов в первом цикле, во втором цикле просто берите для индекса k=500*i...500*i+500
for ($i = 0; $i <=100; $i++) {
    file_get_contents('...');
    for ($k = $i * 500; $k <= $i * 500 + 500; $k++) {
        // ...
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы