所以我以前从未写过csv文件,但总是从csv文件中读取。基于一些例子,我已经读过这是我尝试过的。
<?php
$newCsvData = array();
$getCats = "SELECT * FROM $termTax WHERE taxonomy = 'product_cat'";
$catresults = $wpdb->get_results($getCats);
foreach( $catresults as $catresult ) {
$newCsvData[] = $catresult->term_id;
}
$handle = fopen('export.csv', 'w');
foreach ($newCsvData as $line) {
fputcsv($handle, $line);
}
fclose($handle);
?>
我最终得到错误,说fputcsv()期望参数2是数组,给出的字符串就是这一行
fputcsv($handle, $line);
如果我var_dump($ catresult);我在数组中按预期获得了所有内容... 实施例
object(stdClass)#401 (6) { ["term_taxonomy_id"]=> string(3) "224" ["term_id"]=> string(2) "37" ["taxonomy"]=> string(11) "product_cat" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "0" } object(stdClass)#402 (6) { ["term_taxonomy_id"]=> string(2) "35" ["term_id"]=> string(2) "35" ["taxonomy"]=> string(11) "product_cat" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "1" }
我只是不知道如何将数组写入csv ...
如果我var_dump($ line)我得到每个字符串的字符串(2)“37”及其正确的值。
我是在正确的道路上吗?提前谢谢。
更新:所以我在我的wordpress安装的根目录中创建了一个空白的php文件并使用了这个代码并且它可以找到...以及一些代码下面有人修复了...但事情是它不会在我的内部工作插件我正在努力。
答案 0 :(得分:2)
错误消息告诉您出了什么问题。
fputcsv()期望参数2为数组
从你自己的承认(强调我的)
如果我var_dump($ line)我得到 string(2)“37”每个字符串及其正确的值
为什么不尝试这个?你已经在建造一个阵列了。
foreach( $catresults as $catresult ) {
$newCsvData[] = $catresult->term_id;
}
fputcsv($handle, $newCsvData);
答案 1 :(得分:1)
错误信息非常清楚,没有什么好说的了。
只需将每一行($newCsvData
数组字段)创建为数组:
$newCsvData[] = array($catresult->term_id);
这样,您将每行包含一列CSV文件。
如果您想要一个包含3列的CSV文件,请使用:
$newCsvData[] = array(
$catresult->term_id,
$catresult->another_filed,
$catresult->yet_another_field
);