PHP导出数组到CSV

时间:2015-11-11 18:35:34

标签: php

我目前有一个返回下面数组的查询。当我尝试将数据导出到CSV文件时,我看到数据两次(列被重复,而不是行)。有人能解释一下我的原因吗? (我希望每个记录只显示一次)

Array
(
    [0] => Array
        (
            [0] => 6991
            [id] => 6991
            [1] => 8588
            [work_num] => 8588
            [2] => Test123
            [name] => Test123
            [3] => 1407154
            [deployed] => 1407154
            [4] => 2015-10-13
            [created_date] => 2015-10-13
        )
)

这是我用来导出数据的代码

// create a file pointer connected to the output stream
$output = fopen('php://output', 'w');

// output the column headings
fputcsv($output, array('id','Work Number','Name','Deployed','Date'));


$get_data  = $CLASSNAME->FuntionName(Parameters);

foreach($get_data as $data_row) {
    fputcsv($output, $data_row);
}

fclose($output);

2 个答案:

答案 0 :(得分:2)

如果您使用的是MySQL,请将mysql_fetch_array替换为mysql_fetch_row

mysql_fetch_array将结果集作为数字和关联数组返回。 mysql_fetch_row将结果集返回为仅数字数组。

答案 1 :(得分:1)

修复传入的数据(使用PDO时,使用PDO :: FETCH_ASSOC或PDO :: FETCH_NUM而不是默认的PDO :: FETCH_BOTH)或者在放入csv时命名列:

foreach($get_data as $data_row) {
    fputcsv($output, array(
        $data_row['id'],
        $data_row['work_num'],
        $data_row['name'],
        $data_row['deployed'],
        $data_row['created_date']
    ));
}