I'd like to convert JSON to CSV file. Here's my PHP code :
<?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);
?>
But, I get this notice:
Array to string conversion
In my CSV file I get Array value in fourth column.
Here's expected output:
vala1;vala2;vala3;vala4-1,vala4-2,vala4-3
valb1;valb2;valb3;valb4-1,valb4-2,valb4-3
I can get expected value if I use this code :
echo $fields['field1'] . ';' . $fields['field2'] . ';' . $fields['field3'] . ';' . $fields['field4'][0]['field4a'] . ',' . $fields['field4'][0]['field4b'] . ',' . $fields['field4'][0]['field4c'] . '<br>';
But it's not flexible.. So, how to convert subarray json to CSV file that works even if I add many fields in JSON file?
Thanks in advance,