我有以下JSON:
{
"data": [{
"item": "apple",
"date": "17.1."
}, {
"item": "banana, kiwi",
"date": "18.1."
}]
}
正如您在第二个“item”中看到的那样,有两个元素用逗号分隔。 现在我需要从中创建一个新的JSON。必须拆分包含逗号的“item”并将其放入包含原始“日期”的新对象中。 所以它应该是这样的:
{
"data": [{
"item": "apple",
"date": "17.1."
}, {
"item": "banana",
"date": "18.1."
}, {
"item": "kiwi",
"date": "18.1."
}]
}
如何在PHP中实现此输出?
答案 0 :(得分:0)
与Eddie的答案类似,但维护数据结构,您可以转换为object
<?php
$json = '{
"data": [{
"item": "apple",
"date": "17.1."
}, {
"item": "banana, kiwi",
"date": "18.1."
}]
}';
$obj = json_decode($json);
$fruits = array();
foreach($obj->data as $fruit) {
$items = explode(",", $fruit->item);
foreach ($items as $item)
$fruits[] = (object) ["item" => trim($item), "date" => $fruit->date];
}
$obj->data = $fruits;
print_r(json_encode($obj, JSON_PRETTY_PRINT));
输出
{
"data": [
{
"item": "apple",
"date": "17.1."
},
{
"item": "banana",
"date": "18.1."
},
{
"item": "kiwi",
"date": "18.1."
}
]
}