Запись в CSV-файл. ';для следующего столбца не работает - PullRequest
2 голосов
/ 01 ноября 2019

Я пытаюсь записать свой опрос в файл CSV. Я хотел бы получить это так:

Question     Answer
Question1    Answer1
Question2    Answer2
Question3    Answer3
Question4    Answer4
Question5    Answer5

Так что выше это выходит в 2 отдельных столбца, но ниже это выходит в одном столбце. Это выглядит как:

Question           Answer
Question1;Answer1
Question2;Answer2
Question3;Answer3
Question4;Answer4
Question5;Answer5

Итак,для следующего столбца работает для ответа на вопрос заголовка, но не для фактических вопросов и ответов. Хотите знать, почему и что я делаю неправильно.

$fileName = fopen('file.csv', 'w');
    fputcsv($fileName, ['Vraag;' . 'Antwoord']);
    foreach($newSurvey['data']['formCategories'] as $category) {
        foreach($category['formQuestions'] as $question) {
            $id = $question['id'];
            $arr = [$question['name'] . '; ' . $request->$id];
            $vraag = [$question['name'] . ';'];
            $antwoord = [$request->$id . ';'];
            if($request->$id) {
                fputcsv($fileName, $arr);
            }
        }
    }
    fclose($fileName);

Мне бы очень хотелось узнать, почему это не работает, и что можно улучшить в коде.

Извините за любую грамматику иорфографические ошибки.

1 Ответ

3 голосов
/ 01 ноября 2019

Если вы посмотрите на fputcsv(), есть возможность определить, каким должен быть разделитель, используемый в данных (третий параметр). Поэтому вместо того, чтобы добавлять это к своим данным, вам просто нужно указать ; в качестве разделителя ...

$fileName = fopen('file.csv', 'w');
fputcsv($fileName, ['Vraag','Antwoord'], ';');
foreach($newSurvey['data']['formCategories'] as $category) {
    foreach($category['formQuestions'] as $question) {
        $id = $question['id'];
        $arr = [$question['name'],$request->$id];
        $vraag = [$question['name']];
        $antwoord = [$request->$id];
        if($request->$id) {
            fputcsv($fileName, $arr, ';');
        }
    }
}
fclose($fileName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...