从PHP将多个数组保存为CSV

从PHP将多个数组保存为CSV,php,csv,Php,Csv,有两个数组我想从PHP保存为CSV文件。问题是这段代码只适用于第一次调用。例如,在下面给出的示例中,我只能保存array1,但不能保存array2。如果我交换array1和array2的位置,则array2将被保存,而不是array1。我的代码中到底出了什么问题?如何解决这个问题 header("Content-type: text/csv"); header("Pragma: no-cache"); $headers = array('xxx','yyy','zz

有两个数组我想从PHP保存为CSV文件。问题是这段代码只适用于第一次调用。例如,在下面给出的示例中,我只能保存
array1
,但不能保存
array2
。如果我交换
array1
array2
的位置,则
array2
将被保存,而不是
array1
。我的代码中到底出了什么问题?如何解决这个问题

     header("Content-type: text/csv");
     header("Pragma: no-cache");
     $headers = array('xxx','yyy','zzz');
     saveCSV($array1,"file1.csv",$headers);

     header("Content-type: text/csv");
     header("Pragma: no-cache");
     $headers = array('aaa','bbb','ccc');   
     saveCSV($array2,"file2.csv",$headers);

function saveCSV($data,$fileName,$headers) {
    $outstream = fopen($fileName, "a");
    file_put_contents($fileName, "");

    if ($headers != 0)
        fputcsv($outstream,$headers);

    function __outputCSV(&$vals, $key, $filehandler) {
        fputcsv($filehandler, $vals);
    }
    array_walk($data, "__outputCSV", $outstream);
    fclose($outstream);
}

据我所知,您只能设置一次标题,然后返回内容。上面的代码设置一些标题,使用CSV回复,然后再次设置标题,然后再次使用不同的CSV回复。PHP/browser不会处理单独的返回


您可以使用浏览器窗口.open()/path来获取csv script.php?op=file1,然后是op=file2,而不是将其推离服务器几英里。然后,如果您需要,浏览器可以打开这两个文件。…

设置标题两次

尝试建立csv数据输出,然后在完成后设置一次标题

另外,在另一个函数中有一个函数声明,我确信这是无效的


把输出移到别的地方,或者你想结束它

移动输出CSV-情况就是这样