Строки CSV в array (), необходимо сохранить разрывы строк

У меня есть массив в следующем формате - по сути, это массив предварительно отформатированных строк 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);
  }

person Dan    schedule 21.07.2011    source источник
comment
Предпочитаю var_export. print_r не очень хорошо показывает нам точно, что такое ваши данные.   -  person Lightness Races in Orbit    schedule 21.07.2011
comment
@ Tomalak-Geret'kal - var_export выводит то же самое в этом случае, плюс некоторые кавычки для переноса ключей.   -  person Dan    schedule 22.07.2011
comment
Да; те полезны. В нашей области важна точность.   -  person Lightness Races in Orbit    schedule 22.07.2011


Ответы (1)


Один фрагмент из http://www.php.net/manual/en/function.fputcsv.php, возможно, вам поможет. ИЛИ воспользуйтесь сериализацией: http://php.net/manual/en/function.serialize.php

person Igor    schedule 21.07.2011
comment
Спасибо, но это всего лишь копия из файла fputcsv на php.net. Я знаю, как его использовать, я задаю другой вопрос, потому что мои данные не в этом формате. Я знаю о serialize (), потому что именно так создаются некоторые образцы данных. Я не могу использовать его для хранения всей строки, потому что я не занимаюсь окончательным импортом CSV, мне просто нужно его написать. - person Dan; 21.07.2011