我需要将数据阵列保存到CSV文件。问题如下:当我打开CSV文件时,我看到数组的0行与标题保存在同一行。标题的最后一列也包含0,即'www0'。怎么避免这个?
header("Content-type: text/csv");
header("Pragma: no-cache");
saveCSV($solutionCSV);
function saveCSV($data) {
$outstream = fopen("schedule.csv", "a");
$headers = 'xxx, yyy, zzz, www';
fwrite($outstream,$headers);
function __outputCSV(&$vals, $key, $filehandler) {
fputcsv($filehandler, $vals);
}
array_walk($data, "__outputCSV", $outstream);
fclose($outstream);
}
答案 0 :(得分:1)
标题后需要换行符。请注意从单引号到双引号的更改以启用转义。
$headers = "xxx, yyy, zzz, www\n";
如果这会使Windows运行,请使用\r\n
:
$headers = "xxx, yyy, zzz, www\r\n";
或者,您也可以依靠fputcsv
来编写标题。这可能是最安全的方法,因为它会产生一致的格式。
$headers = array('xxx', 'yyy', 'zzz', 'www');
fputcsv($outstream, $headers);