【发布时间】:2016-07-13 14:26:39
【问题描述】:
我想将 JSON 转换为 CSV 文件。 这是我的 PHP 代码:
<?php
$response = '[{
"field1": "vala1",
"field2": "vala2",
"field3": "vala3",
"field4": [{
"field4a": "vala4-1",
"field4b": "vala4-2",
"field4c": "vala4-3"
}]
}, {
"field1": "valb1",
"field2": "valb2",
"field3": "valb3",
"field4": [{
"field4a": "valb4-1",
"field4b": "valb4-2",
"field4c": "valb4-3"
}]
}]';
$list = json_decode($response, true);
$fp = fopen('test_json.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields, ';');
}
fclose($fp);
?>
但是,我收到了这条通知:
数组到字符串的转换
在我的 CSV 文件中,我在第四列中得到 Array 值。
这是预期的输出:
vala1;vala2;vala3;vala4-1,vala4-2,vala4-3
valb1;valb2;valb3;valb4-1,valb4-2,valb4-3
如果我使用此代码,我可以获得预期值:
echo $fields['field1'] . ';' . $fields['field2'] . ';' . $fields['field3'] . ';' . $fields['field4'][0]['field4a'] . ',' . $fields['field4'][0]['field4b'] . ',' . $fields['field4'][0]['field4c'] . '<br>';
但它不灵活.. 那么,即使我在 JSON 文件中添加了许多字段,如何将子数组 json 转换为 CSV 文件?
提前致谢,
【问题讨论】:
-
您正在执行单个循环,这意味着您
$fields是子数组,然后您尝试将其作为字符串转储。你需要多个循环。