我想將JSON轉換爲CSV文件。 這裏是我的PHP代碼:如何將子數組json轉換爲CSV文件?
<?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);
?>
但是,我得到這樣的通知:
Array to string conversion
在我的CSV文件,我得到了第四列陣列值。
這裏的預期輸出:
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轉換爲CSV文件即使我在JSON文件中添加了很多字段,它也可以工作嗎?
由於提前,
你正在做一個循環,這意味着你'$ fields'是孩子數組,然後嘗試轉儲爲字符串。你需要多個循環。 –
[PHP將json轉換爲帶有子數組的csv]可能的副本(http://stackoverflow.com/questions/34244197/php-convert-json-into-csv-with-sub-array) – Deadpool