dongqindu8110 2015-06-28 18:29
浏览 82
已采纳

使用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?

  • 写回答

1条回答 默认 最新

  • dongli8862 2015-06-28 18:48
    关注

    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);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分