fputcsv提示:将数组转换为字符串

3

我有一个简单的PHP代码,用于将JSON保存为CSV格式,但是我遇到了一个错误,以下是代码:

<?php
$inputJSON = file_get_contents('https://url');

$out = fopen('C:\xampp\htdocs\tkp_product\tkp2.csv', 'w');
foreach(json_decode($inputJSON, true)["data"] as $key => $value) {
  fputcsv($out, $value);
}
fclose($out);

?>

这是关于 fputcsv($out, $value); 的错误信息:

注意:在 C:\xampp\htdocs\tkp.php 的第6行中将数组转换为字符串

注意:在 C:\xampp\htdocs\tkp.php 的第6行中将数组转换为字符串

我正在使用安装有PHP7的Win 10上的XAMPP运行此脚本。我该怎么做才能解决这个问题?


这里的行号和 tkp.php 中的一样吗?第6行是哪一行? - mkasberg
等一下,我正在编辑一个问题。 - Alvariko Zion
CSV是一种平面格式,因此fputcsv的第二个参数应该是一个平面数组。您的$value是包含其他数组的数组。PHP将它们转换为字符串(以便可以将它们作为单个CSV字段写出)并发出通知。 - lafor
1个回答

0

你需要检查值的类型

foreach(json_decode($inputJSON, true)["data"] as $key => $value) {
 if(!is_array($value)) fputcsv($out, $value);
}

但是请注意,似乎file_get_contents('https://url');返回的是嵌套数组,这只会得到第一层


fputcsv不起作用.. 这是我使用的示例JSON https://gist.github.com/anonymous/7b8fe84d482cd7f7b95a13187ae1cac7 - Alvariko Zion
看起来你的json有多个层级,你怎样想将它保存为CSV呢?CSV是逐行结构,而json是层级结构,所以如何将json转换为csv。 - Ahmad Rezk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接