首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP中将JSON数组嵌套到CSV

PHP中将JSON数组嵌套到CSV
EN

Stack Overflow用户
提问于 2021-09-11 04:50:55
回答 1查看 70关注 0票数 -1

如何正确地将这个JSON输出到CSV?

我的json文件模式如下:

代码语言:javascript
运行
复制
{
"swimmers": [
{
  "Province": "Ontario",
  "Exemption": "S9,SB9,SM9",
  "Code": "A,3,4",
  "Level": "Level 8",
  "ClassificationDate": "2020",
  "RYEar": "2024",
  "Status": "Registered",
  "ID": "123456",
  "FirstName": "John",
  "LastName": "Doe",
  "Gender": "M",
  "AGE": null,
  "DOB": "01/11/2000",
  "Clubs": [
    {
      "Clubname": "Human Fish",
      "Code": "ABC",
      "Clubid": "300"
    }
  ],
  "Email": null,
  "Language": "E",
  "ChallengeData": null
}
 //more entries with same pattern as first
],
  "status": "OK",
  "application": "SOme App API"
}

我成功地用下面的代码将它转换成CSV,但是我无法在CSV文件中输出俱乐部字段,它只是显示“Array()”,而不是显示俱乐部。我试着用注释的代码来解决这个问题,但是它并没有解决这个问题。

代码语言:javascript
运行
复制
$csvFileName = 'converted.csv';
$json = 'myjson.json'; 
$data = file_get_contents($json); 
$payload= json_decode($data); 

$file_pointer = fopen($csvFileName, 'w');

if ($file_pointer){
    foreach($payload['swimmers'] as $row) {
        // $clubs = $row['Clubs'] ;
        // if (is_array($clubs)){
            // foreach($clubs as $c){
                // fputcsv($file_pointer, $c);
            // }
        // }else{
            fputcsv($file_pointer, $row);
        }
}
EN

Stack Overflow用户

回答已采纳

发布于 2021-09-11 05:21:00

Clubs字段的每个元素追加到$row,然后删除Clubs字段。

代码语言:javascript
运行
复制
foreach ($payload['swimmers'] as $row) {
    foreach ($row['Clubs'] as $club) {
        $row = array_merge($row, array_values($club));
    }
    unset($row['Clubs']);
    fputcsv($file_pointer, $row);
}
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69140090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档