我正在尝试将2D数组导出为CSV文件。这应该很简单......但我尝试了我能找到的每个fputcsv示例,但没有任何作用。要么将整个数组存放到一行......或者当我尝试通过foreach循环插入或收到错误时。
我的代码:
$test_array = explode(PHP_EOL, $array_data);
$fh = fopen('file.csv', 'w');
foreach($test_array as $line){
fputcsv($fh, $line);
}
fclose($fh);
错误:
Warning: fputcsv() expects parameter 2 to be array, string given in /Users/pc_user/test_script.php on line 24
数组的内容:
array(729) {
[0]=>
string(163) "Name;Title;Salary;FF;AD;HD;HE"
[1]=>
string(32) "Bob;Manager;Hidden;3.9;0.9;2.6;3"
[2]=>
string(32) "Tom;Student;Hidden;4.9;0.2;2.5;2"
[3]=>
string(34) "Jim;WorkerBee;Hidden;3.9;0.9;2.6;4"
[4]=>
string(35) "Fred;Poohbah;Hidden;3.5;0.4;3.6;2"
[5]=>
string(34) "Jake;Manager;Hidden;3.3;0.9;4.6;2"
[6]=> ... And so on with 732 rows...
答案 0 :(得分:1)
这是因为$line
是字符串而不是数组。由于fputcsv
期望第二个参数是一个数组,因此请更改
fputcsv($fh, $line);
到
fputcsv($fh, explode(';', $line));