0

我将从这样的数据库中获取结果。

 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 函数来执行此操作,而循环和条件更少?

我想,这些是步骤:

  1. 根据类型过滤数组的个性。大概,3次来这里得到3个水果。哪个功能在这里有帮助?根据值过滤。或者理想的键值对。
  2. 你得到 3 个数组,每个数组对应一种水果。分别弹出所有数组中的类型元素。
  3. 循环遍历类型,并将数组放入每种类型中,以类型值作为索引。

还有其他更好的方法吗?

4

2 回答 2

5

像这样将旧数组重组为新数组:

$new = array();
foreach($old as $vec){
    $new[$vec['type']] = array(
        'number' => $vec['number'],
        'size' => $vec['size'],
        'weight' => $vec['weight']      
    );
}
echo json_encode($new);
于 2012-08-17T19:13:24.110 回答
0

首先根据需要更改数组结构,然后使用json_encode()

于 2012-08-17T19:11:43.387 回答