使用PHP将JSON导出到CSV

使用PHP将JSON导出到CSV,php,json,csv,Php,Json,Csv,我们正在使用的营销应用程序为我提供了以下JSON代码,我希望将其导出为CSV文件 {"FirstName":"data","Surname":"data","E-mail Address":"data","PurchasedGoods":"data","Address1":"data","Address2":"data","City":"data","Postcode":"data","Company":"data","MiddleName":"data","Country":"data","T

我们正在使用的营销应用程序为我提供了以下JSON代码,我希望将其导出为CSV文件

{"FirstName":"data","Surname":"data","E-mail Address":"data","PurchasedGoods":"data","Address1":"data","Address2":"data","City":"data","Postcode":"data","Company":"data","MiddleName":"data","Country":"data","Title":"data"}
JSON代码中将有许多记录

请帮助我使用PHP代码将上述JSON代码/记录导出到CSV文件

我目前正在使用以下代码:

<?php
$request = file_get_contents('php://input');
$req_dump = print_r($request, TRUE);
$fp = fopen('request.log', 'a');
$fp = fopen('file.csv', 'w');
fwrite($fp, $req_dump);
fclose($fp);
?>

我还添加了以下代码,但没有乐趣:

#!/usr/bin/php
<?php


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));
}
?>
#/usr/bin/php
查看如何解码json数据

对于CSV生成,您可以“手动”生成它(这只是在文件中写入),但使用一些现有的库肯定更好,比如由杰出软件包联盟(League of Excellant Packages)提出的库(多好的名称啊!:):)


希望能有所帮助。

@JonStirling我添加了我正在使用的代码。我试过两种不同的代码。好的,下一个问题。实际发生了什么,你期望发生什么。顺便说一句,我不知道你到底想用这个
数组\u merge
做什么。对不起@JonStirling我从一个开发人员那里得到了这个代码,他让我做一些更改,但我做不到,所以这并不能解决问题。