我将从这样的数据库中获得结果。
array(
[0] => array(
[type] => orange,
[number] => 10,
[size] => 10c,
[weight] => 1l
)
[1] => array(
[type] => mango,
[number] => 10,
[size] => 10c,
[weight] => 1l
)
[1] => array(
[type] => apple,
[number] => 10,
[size] => 10c,
[weight] => 1l
)
[3] => array(
[type] => mango,
[number] => 10,
[size] => 10c,
[weight] => 1l
)
)
基本上,我需要将其转换为以下JSON格式:
"mango" : [{
"number" : "10",
"size" : "10c",
"weight" : "1l"
},
{
"number" : "12",
"size" : "14c",
"weight" : "12"
}
],
"orange" : [{
"number" : "12",
"size" : "10c",
"weight" : "1l"
},
{
"number" : "12",
"size" : "14c",
"weight" : "11"
}
],
"apple" : [{
"number" : "10",
"size" : "10c",
"weight" : "1l"
},
{
]
忽略数量,大小和重量。那些只是随机数。 但是数组中的第一个元素包含JSON标记。这应该从数组中删除,但作为JSON中对象数组的标记(你可以看到)。
我知道我们可以使用循环,条件等进行编写。使用现有的内置php函数以及更少的循环和条件,是否有一种智能且快速的方法来执行此操作?
我想,这些是以下步骤:
还有其他更好的方法吗?
答案 0 :(得分:5)
将旧数组重组为新数组:
$new = array();
foreach($old as $vec){
$new[$vec['type']] = array(
'number' => $vec['number'],
'size' => $vec['size'],
'weight' => $vec['weight']
);
}
echo json_encode($new);
答案 1 :(得分:0)
首先根据需要更改数组结构,然后使用json_encode()。