@scotch18
Middle PHP Developer

Как проверить и изменить второй столбец каждой строки таблицы csv?

Есть таблица, в которой во втором столбце указанны числа. Мне требуется изменить значение на "1", если число больше "0".

Пока мой код выглядит так, но очевидно, что я все делаю не так, т.к. измененный файл становится пустым.
if (($file = fopen("$document_root/bitrix/catalog_export/test.csv" , "w+")) !== false) {
    while (($data = fgetcsv($file, '100', ';')) !== false) {
        if ($data[1] >= 0) {
            $data[1] = 2;
        }
    }
}
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
@scotch18 Автор вопроса
Middle PHP Developer
Вроде разобрался

$document_root = $_SERVER["DOCUMENT_ROOT"];
if (($file = fopen("$document_root/bitrix/catalog_export/test.csv" , "r")) !== false) {
    while (($data = fgetcsv($file, '100', ';')) !== false) {
        if ($data[1] > 0) {
            $data[1] = 1;
        }
        $csv_new[] = $data;
    }
    fclose($file);
}
var_dump($csv_new);


$file_new = fopen("test2.csv" , "w");

foreach ($csv_new as $line){
    fputcsv($file_new, $line, ';');
}
fclose($file_new);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kocherman
@kocherman
Конечно, вы делаете что-то не так, открываете файл с ключём "w+", а потом пытаетесь брать с него данные.

Про ключи популярно в талмуде.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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