我只需要做同样的事情。我编写了一个小的命令行脚本,它以 json 文件作为参数并输出 CSV。
你可以在这里查看:PHP Converting JSON array to CSV
那里的重要员工使用数组的键作为 CSV 文件的第一行。并保持下一个元素的顺序,以免弄乱 CSV。
这是代码:
if (empty($argv[1])) die("The json file name or URL is missed\n");
$jsonFilename = $argv[1];
$json = file_get_contents($jsonFilename);
$array = json_decode($json, true);
$f = fopen('php://output', 'w');
$firstLineKeys = false;
foreach ($array as $line)
{
if (empty($firstLineKeys))
{
$firstLineKeys = array_keys($line);
fputcsv($f, $firstLineKeys);
$firstLineKeys = array_flip($firstLineKeys);
}
// Using array_merge is important to maintain the order of keys acording to the first element
fputcsv($f, array_merge($firstLineKeys, $line));
}