我正在将数据导出为CSV并面临一个问题。
$data['name'] = "Test";
$data['category'] = "category1, category2, caegory3";
当我将代码导出为CSV时,它会导出记录,但会为category1创建单独的列,为category 2创建单独的列,为category3创建单独的列。
Current Output
-------------------------------------------
| Name | Category | | |
--------------------------------------------
| TEst | category1 | category2 | category3 |
--------------------------------------------
Expected Output
------------------------------------------------------------
| Name | Category | | |
-------------------------------------------- ---------------
| TEst | category1,category2,category3 | | |
------------------------------------------------------------
我应该怎么做,以逗号分隔的字符串落在同一列?
答案 0 :(得分:5)
您应该在""
之间设置类别值,以便不解释逗号。您可以更改以下代码:
$data['name'] = 'Test';
$data['category'] = '"category1, category2, caegory3"';
答案 1 :(得分:1)
你应该看看fputcsv
。它完全符合您的要求,具有不同的转义字符等等。
http://php.net/manual/en/function.fputcsv.php
如果您希望将其输出到缓冲区而不是文件,可以使用$fh = fopen('php://output', 'w');
写入客户端。