Экспорт данных для экспорта в CSV - PullRequest
0 голосов
/ 17 июня 2019
protected function create_csv_file($records)
{
    $header_data = current($records);
    unset($header_data['attributes']);
    $header = array_keys($header_data);

    $file_data = '"' . join('";"', $header) . '"' . "\r\n";
    foreach ($records as $record) {
        $data = [];
        unset($record['attributes']);
        foreach ($record as $key => $value) {
            if (!is_array($value)) {
                $data [] = '"' . $value . '"';
            }
        }
        $file_data .= join(";", $data) . "\r\n";
    }
    return $file_data;
}

Привет, ребята, у меня была функция, которая создает файл CSV.

Но по некоторым причинам экспорт CSV запускается в EOF, потому что в некоторых столбцах есть пробелы или используется тот же самый характер в тексте ("или '), который я использую, чтобы обернуть ячейки данных.

Как правильно замаскировать ячейки, чтобы получить все данные, как я ожидал?

я хочу:

сначалаячейка, вторая ячейка, третья ячейка

но я получаю

первое, ячейка, второе, ячейка, третье, ячейка

ниже вы найдете массив

Array
(
    [0] => Array
        (
            [Name] => Peter
            [Priority] => 3
            [State] => false
            [Message] => 
        )

    [1] => Array
        (
            [Name] => Anna
            [Priority] => 4
            [State] => false
            [Message] => 
        )

    [2] => Array
        (
            [Name] => Jen
            [Priority] => 1
            [State] => true
            [Description] => An: email@address.com
CC: 
BCC: 
Attachment: -- no Attachment --

Topic: How does it work?
Text:
 


    description
        )
...