我正在尝试使用此处描述的以下函数编写.csv文件:
这是功能:
function array2csv(array &$array)
{
if (count($array) == 0) {
return null;
}
ob_start();
$df = fopen('/path/to/file.csv', 'w');
fputcsv($df, array_keys(reset($array)));
foreach ($array as $row) {
fputcsv($df, $row);
}
fclose($df);
return ob_get_clean();
}
我称之为:
array2csv($array);
$array[0]
(所有其他值遵循此格式)如下:
array(10) {
[1]=>
string(19) "2015-03-01 00:09:01"
[2]=>
string(11) "1234567890"
[3]=>
string(2) "26"
[7]=>
string(7) "0.10102"
[8]=>
string(12) "TESTING THIS"
[9]=>
}
我一直在争取一段时间,试图找出为什么我在.csv文件中得到如下输出:
0,1,2,3,4,5,6,7,8,9
"2015-03-01 00:09:01",1234567890,26,0.10102,"TESTING THIS"
... etc ...
在做研究时还没有真正看到过这样的问题,我不明白为什么会这样。
有人能告诉我这里发生了什么吗?谢谢!
答案 0 :(得分:2)
您正在写文件的密钥,此处
fputcsv($df, array_keys(reset($array)));
答案 1 :(得分:2)
它将数组的数组键作为标题放在第一行:
fputcsv($df, array_keys(reset($array)));
表示你有一个带有0键的二维数组,例如
Array ( 0 => Array ("2015-03-01 00:09:01",1234567890,26,0.10102,"TESTING THIS") 1 => Array (...) 2 => Array (...) 3 => Array (...) 4 => Array (...) 5 => Array (...) 6 => Array (...) 7 => Array (...) 8 => Array (...) 9 => Array (...) )