私はちょうど同じことをする必要がありました。私は小さなコマンド ライン スクリプトを作成しました。このスクリプトは、パラメーターとして 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));
}