#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);