我有一个关于将 JSON 数据保存为 CSV 格式的问题。我的 JSON 采用以下结构。
{
"element_1": [
{
"field1": "Something",
"field2": 123,
"field3": "Something",
"field4": "Something"
},
],
"element_2": [
{
"field1": "Something",
"field2": 345,
"field3": "Something"
},
{
"field1": "Something",
"field2": 365,
"field3": "Something"
},
{
"field1": "Something",
"field2": 334,
"field3": "Something",
"field4": "Something",
"field5": "Something"
},
...
]
现在我有兴趣element_2以 CSV 格式保存数据。因此,我有以下内容
//convert JSON data to array
$array = json_decode($data, true);
fputcsv($handle, array_keys($array['element_2'][0]), ',');
foreach ($array['element_2'] as $key => $row) {
fputcsv($handle, $row);
}
现在这种方法的问题是,它只能从元素0,这意味着它射门密钥获取密钥field4和field5在元件2上。
另一个问题是它的值与键不匹配。因此,如果元素 1 没有field2,它会将 的值field3放在 for 列中field2。
如何克服这些问题以确保使用所有键,并将值放置在键的正确列中?
繁星coding