我目前有一个返回下面数组的查询。当我尝试将数据导出到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);
答案 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']
));
}