Проблема с точкой с запятой PHP в csv

#php

#php

Вопрос:

У меня есть следующий $data массив:

 array(
    (int) 0 => '37899810;214214;01;5083;;',
    (int) 1 => '37899810;214215;01;19966;;',
    (int) 2 => '37899810;54654;01;35691;;',
    (int) 3 => '37899810;769;01;52016;;'
)
 

Когда я пытаюсь повторить его как csv следующим образом:

 foreach($data as $row):
    echo $row."n";
endforeach;
 

Для каждой строки точки с запятой экранируются, а целые числа помещаются в разные ячейки. Вместо этого я хочу получить целую строку, скажем 37899810;214214;01;5083;; , для размещения в одной ячейке, а остальные будут размещены в других строках, но строки будут занимать только одну ячейку.

Комментарии:

1. Вы могли бы использовать вложение в двойные кавычки? '"37899810;214214;01;5083;;"'

2. Какие ячейки? Как они генерируются?

3. Большое спасибо @Jack, это все, что мне было нужно. Не могли бы вы отправить это в качестве ответа?

4. Нет, это не так . Ваш вопрос в лучшем случае неполный.

Ответ №1:

попробуйте это

 header( 'Content-Type: text/csv' );
header( 'Content-Disposition: attachment;filename=example.csv');
$handle = fopen('php://output', 'r ');
foreach ($data as $row) {
   fputcsv($handle, $row, ';');
}
fclose($handle);