在PHP中从数组创建CSV

时间:2014-07-23 22:57:02

标签: php arrays csv

你好我在PHP中有一个如下所示的数组:

Array
(
    [0] => 20140723,8,156.62,LTD.
20140418-23,16-4010061201,936-438-2501,Y,23,20140418,V849,10.00
20140418-29,16-4010091102,936-438-2501,Y,29,20140418,V849,2.00
0,16-4010091102,936-436-0524,works.com,Y,0,20140723,0,0
0,16-4010061201,936-438-2501,waterw.com,Y,0,20140723,0,0
0,16-4010091102,936-438-2501,waterworks.com,Y,0,20140723,0,0
    [1] => 140723-1548.csv
)

我想要做的是创建一个csv文件,其内容是上面数组的第一个索引,标题是第二个数组索引。我使用了以下功能:

function createCSV($Myarray, $filename){
    $fp = fopen($filename, "w");
    fputcsv($fp, array($Myarray)); 
    fclose($fp);  
}

我就这样称呼它:

createCSV($Myarray[0], $Myarray[1]);//$Myarray is the array above

我遇到的问题是csv输出中的第一个单元格具有来自数组第一个索引的所有数据,我想要的是将每个第一个索引数组行放在csv的一行中。

由于

1 个答案:

答案 0 :(得分:0)

使用以下代码

 function createCSV($Myarray, $filename){
    $fp = fopen($filename, "w");
    fputcsv($fp, split(',',$Myarray)); 
    fclose($fp);  
 }

或只是

function createCSV($Myarray, $filename){
    $fp = fopen($filename, "w");
    fputs($fp, $Myarray); 
    fclose($fp);  
 }

的解释:

fputcsv在csv中为相应的数组元素创建一个单元,而不管数组中的数据如何。在你的情况下,你只是传递一个数组元素与逗号分隔字符串作为值。 fputcsv的行为正确,只能生成一个csv列。因此用户可以在多个数组元素中输入或拆分数据