繁体   English   中英

PHP 更改 JSON 格式

[英]PHP Change JSON format

我想将下面的 JSON 数据更改为我自己的格式。

由此:

[
      [
            {
                  "venue" : "ABC Room",
                  "date" : "20191014",
                  "staff_name" : "Adam",
                  "age" : 30,
            },
            {
                 "venue" : "ABC Room",
                  "date" : "20191014",
                  "staff_name" : "Mia",
                  "age" : 35,
            },
            {     "venue" : "DEF Room",
                  "date" : "20191010",
                  "staff_name" : "Sofia",
                  "age" : "36",
            }
      ],
      [     {     
                  "ph_year":"2019",
                  "ph_date":"20190205",
                  "ph_statecode":"ALL",
                  "ph_event":"02",
                  "ph_type":"01"
            }
      ]
]

改成:

[
    {
        "venue" : "ABC Room",
        "date" : "20191014",
        "staff": {
            "staff": [
                {
                    "staff_name" : "Adam",
                    "age" : 30,
                },
                {
                    "staff_name" : "Mia",
                    "age" : 35,
                }
            ]
        }
    },
    {
        "venue" : "DEF Room",
        "date" : "20191010",
        "staff": {
            "staff": [
                {
                    "staff_name" : "Sofia",
                    "age" : "36",
                }
            ]
        }
    },
    {
        "publicholiday": {
            "ph_date": "20190205",
            "phevent": "02"
        }
    }
]

请有人帮助我..有人可以给我这个想法或方法吗? 如何在foreach function中调用它? 我以前已经尝试过,但没有成功。非常感谢任何帮助。!! 非常感谢。

这是片段,

$result = [];
foreach ($arr as $element) {
    foreach ($element as $value) {
        if (!empty($value['venue'])) {
            $result[$value['venue']]['venue']            = $value['venue'];
            $result[$value['venue']]['date']             = $value['date'];
            $result[$value['venue']]['staff']['staff'][] = $value;
        } else {
            $result["publicholiday"]['ph_date'] = $value['ph_date'];
            $result["publicholiday"]['phevent'] = $value['ph_event'];
        }
    }
}
$result = array_values($result);
echo json_encode($result);

演示

Output:-

[
    {
        "venue": "ABC Room",
        "date": "20191014",
        "staff": {
            "staff": [
                {
                    "venue": "ABC Room",
                    "date": "20191014",
                    "staff_name": "Adam",
                    "age": 30
                },
                {
                    "venue": "ABC Room",
                    "date": "20191014",
                    "staff_name": "Mia",
                    "age": 35
                }
            ]
        }
    },
    {
        "venue": "DEF Room",
        "date": "20191010",
        "staff": {
            "staff": [
                {
                    "venue": "DEF Room",
                    "date": "20191010",
                    "staff_name": "Sofia",
                    "age": "36"
                }
            ]
        }
    },
    {
        "ph_date": "20190205",
        "phevent": "02"
    }
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM