使用php将json转换为csv无法获得正确的格式

I am trying to save simple JSON data to csv using php. But the problem is that I am getting data in columns instead of rows. My JSON looks like: {"userid":"686868","deviceid":"dummy"}

and the code is:

   $csv_write_path = "test.csv";
   $json_str = file_get_contents($json_file);
   $json_obj = json_decode($json_str, true);
   $f = fopen($csv_write_path, 'w');
   foreach ($json_obj as $line){
       fputcsv($f, (array)$line);//tried using fputcsv($f, $line); // it saves nothing
   }
   fclose($f);

And the output is:

693936

dummy

But I want the output file to look like: 693936 | dummy //i mean col wise

can someone suggest me that what possibly is wrong?

You need to pass it an array of objects.

Your code currently is putting a line on each key of your single object.

example:

[
    {
        "userid": "686868",
        "deviceid": "dummy"
    }
]

then you dont need to cast to an array

fputcsv($f, $line);