У меня есть массив в следующем формате - по сути, это массив предварительно отформатированных строк CSV - ключи 0 и 1 в этом примере имеют значение CSV, содержащее разрыв строки.
Array
(
[0] => 'foo,foo,foo,foo
bar,foo,a:1:{i:0;s:4:"blah";}'
[1] => 'bar,bar,bar,bar
foo,bar,a:1:{i:0;s:4:"blah";}'
[1] => 'bar,bar,bar,foo,bar,a:1:{i:0;s:4:"blah";}'
)
То, что я делаю дальше, - это использование \r\n
в качестве клея для генерации файла CSV, а затем его запись. Проблема заключается в том, что результирующий файл не переносит поля, содержащие разрыв строки, в двойные кавычки, так что разрыв строки может быть сохранен (или, по крайней мере, я предполагаю, что так и будет).
Созданный CSV-файл будет загружен в базу данных или отредактирован в Excel, а разрывы строк должны быть сохранены в поле.
Использование fputcsv после перехода в нужный формат генерирует CSV, который имеет разрыв строки и заключен в двойные кавычки при просмотре в Блокноте или аналогичных файлах, но не при открытии в Excel.
$parent_wholelines = array();
foreach ($output_array as $wholeline) {
$parent_wholelines[] = explode(',', $wholeline);
}