0

我很难弄清楚如何正确格式化这些 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
4

1 回答 1

1

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

foreach( $catresults as $catresult ) {
    $row = array($catresult->name, $catresult->term_id);
    fputcsv($handle, $row);
}
于 2014-05-08T06:15:43.637 回答