2015-04-02 4 views
1

Мой $array выглядит так в исходном коде моего браузера;Как массив должен быть отформатирован для результата fputcsv горизонтальным, а не вертикальным?

Array(
    [0] => 2015-01-15 
    [1] => 2015-02-15 
    [2] => 2015-03-15 
) 

Мой код для экспорта этого файла в csv;

$fp = fopen("file.csv", "w"); 
fputcsv($fp, $array) 
fclose($fp); 

Выход csv является горизонтальным. например;

2015-01-01 | 2015-02-01 | 2015-03-01 

Я хочу его вертикально;

2015-01-01 
2015-02-01 
2015-03-01 

Я не знаю, как это сделать. Я попробовал добавить;

$fp = fopen("file.csv", "w", $delimiter = ',', $enclosure = '"'); 

И это не сработало. Я попытался создать другой массив для тестирования;

$array = array("2015-01-01", "2015-02-01", "2015-03-01"); 

И это дало тот же горизонтальный результат. Я открыт для изменения стиля/формата моего массива. Что бы ни получилось.

+0

Если вам просто нужно одно значение для каждой строки, зачем вообще вообще разбираться с csv? 'fprint()' будет служить вам лучше без накладных расходов на создание однозначной записи csv. –

ответ

2

fputcsv() пишет строку. Для нескольких строк вам необходимо сделать несколько вызовов.

Если каждый элемент в массиве идет на новую строку, просто перебирать массив:

$fp = fopen("file.csv", "w"); 
    foreach($array as $element) 
     fputcsv($fp, array($element)); 
    fclose($fp); 

Примечание (в соответствии с комментарием по Rizier123), что вам нужно сделать $element массив.

+0

Когда я пытаюсь, я получаю 'Warning: fputcsv() ожидает, что параметр 2 будет массивом, строка задана' для каждого "элемента" – mikelovelyuk

+1

@ mike3875 Просто используйте эту строку: 'fputcsv ($ fp, [$ element]);' – Rizier123

+0

Спасибо, что работает. Как это называется, когда вы делаете это с помощью '[]' s? – mikelovelyuk