3v4l.org

run code in 300+ PHP versions simultaneously
<?php $json = '[{"macAddress":"xx:xx:xx:xx:xx:xx","lastData":{"dateutc":1595258880000,"tempinf":74.3,"humidityin":44,"baromrelin":29.929,"baromabsin":29.235,"tempf":85.5,"battout":1,"humidity":62,"winddir":167,"windspeedmph":0.2,"windgustmph":1.1,"maxdailygust":9.2,"hourlyrainin":0,"eventrainin":0,"dailyrainin":0,"weeklyrainin":0,"monthlyrainin":0.571,"totalrainin":1.823,"solarradiation":832.38,"uv":8,"feelsLike":90.84,"dewPoint":70.96,"feelsLikein":73.5,"dewPointin":51,"tz":"America/Chicago","date":"2020-07-20T15:28:00.000Z"},"info":{"name":"My Weather Station","coords":{"coords":{"lon":134.65635809999999,"lat":32.6587316},"address":"100 Park Lane, Yourtown, TN 77777, USA","location":"Yourtown","elevation":146.7066497802734,"geo":{"type":"Point","coordinates":[134.65635809999999,32.6587316]}}}}]'; $data = json_decode($json, true); $fp = fopen('php://memory', 'w+'); // simulate file access function getFlatArray($data, $keyPrefix = '') { $result = []; foreach($data as $key => $value) { $newKey = $keyPrefix . $key; if (!is_array($value)) { $result[$newKey] = $value; } else { $result += getFlatArray($value, $newKey . '-'); } } return $result; } $csvArray = getFlatArray(array_pop($data)); fputcsv($fp, array_keys($csvArray)); // add keys to first line fputcsv($fp, $csvArray); // Output result rewind($fp); // set filepointer to beginning var_dump(fread($fp, 1024)); // read content (max 1024 bytes) fclose($fp);

preferences:
27.96 ms | 413 KiB | 5 Q