格式化fputcsv,标题行和每列等当前都插入到第一列

时间:2014-05-08 06:11:30

标签: php csv export-to-csv fputcsv

我正在努力弄清楚如何正确格式化这些fputcsv线。

以下是我用来将查询写入csv文件的代码。

$handle = fopen( $dir .'/export.csv', 'w');
  $headers = 'Category Name, ID';
  fwrite($handle,$headers);

foreach( $catresults as $catresult ) {
  $csvcatname[0] = $catresult->name;
  $csvcatimage[1] = $catresult->term_id;
  fputcsv($handle, $csvcatname);
  fputcsv($handle, $csvcatimage); 
}

fclose($handle);
}

这就是它写入csv文件的方式。类别名称应位于“类别名称”列中,ID应位于ID中。如果你看,你可以看到第一个类别名称被插入到第二个列标题行以及标题名称...

Category Name  |  IDShoes
66  
Pants   
65  
Lotions 
64  
findme  
69  
find me 
70  
with space  
71  
Find Second 
72  

更新

感谢Barmar现在插入两列。但是第一个数据行仍然插入到我的标题行中。我可以跳过1排吗?这是它出现的方式......

Category Name | IDShoes | 66

1 个答案:

答案 0 :(得分:1)

每次调用fputcsv都会在文件中写入另一行。如果希望行有两列,则它必须是包含两个元素的数组。您正在创建两个阵列,每个阵列都有一个元素,并分别编写它们。

foreach( $catresults as $catresult ) {
    $row = array($catresult->name, $catresult->term_id);
    fputcsv($handle, $row);
}