我将从这样的数据库中获得结果.
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
)
)
Run Code Online (Sandbox Code Playgroud)
基本上,我需要将其转换为以下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"
},
{
]
Run Code Online (Sandbox Code Playgroud)
忽略数量,大小和重量.那些只是随机数.但是数组中的第一个元素包含JSON标记.这应该从数组中删除,但作为JSON中对象数组的标记(你可以看到).
我知道我们可以用循环,条件等编写.有没有一个聪明而快速的方法来使用现有的内置PHP函数,减少循环和条件?
我想,这些是以下步骤:
还有其他更好的方法?
将旧数组重组为新数组,如下所示:
$new = array();
foreach($old as $vec){
$new[$vec['type']] = array(
'number' => $vec['number'],
'size' => $vec['size'],
'weight' => $vec['weight']
);
}
echo json_encode($new);
Run Code Online (Sandbox Code Playgroud)