[英]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.