将数组转换为JSON - PHP

Kev*_*ave 0 php arrays json

我将从这样的数据库中获得结果.

 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函数,减少循环和条件?

我想,这些是以下步骤:

  1. 根据类型过滤数组个性.可能,这里有3次获得3个成果.哪个功能对此有帮助?根据值过滤.或者理想的是键值对.
  2. 你得到3个阵列,每个阵列用于一种水果.分别弹出所有数组中的type元素.
  3. 循环遍历类型,并将数组放在每种类型中,类型值为索引.

还有其他更好的方法?

dar*_*rma 5

将旧数组重组为新数组,如下所示:

$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)