2014-07-26 24 views
0

我有一个像下面这样的数组,我想转换这个数组,也就是说,我想通过order_id来创建一个单独的数组。为特定的键创建单独的数组

开始阵列:

Array 
(
    [0] => Array 
     (
      [order_id] => 2 
      [product_id] => 2 
      [product_name] => Product2 
      [o_qty] => 5.00 
      [d_qty] => 
     ) 

    [1] => Array 
     (
      [order_id] => 2 
      [product_id] => 3 
      [product_name] => Product 1 Category 2 
      [o_qty] => 5.00 
      [d_qty] => 54.00 
     ) 

    [2] => Array 
     (
      [order_id] => 1 
      [product_id] => 4 
      [product_name] => Product 2 category 2 
      [o_qty] => 1.00 
      [d_qty] => 2.00 
     ) 

    [3] => Array 
     (
      [order_id] => 3 
      [product_id] => 6 
      [product_name] => product_name 
      [o_qty] => 
      [d_qty] => 1.00 
     ) 

    [4] => Array 
     (
      [order_id] => 2 
      [product_id] => 7 
      [product_name] => afdasdf 
      [o_qty] => 3.00 
      [d_qty] => 1.00 
     ) 

) 

预期的转换,这是像后输出,

Array 
(
[2] =>Array( 
    [0] => Array 
     (
      [product_id] => 2 
      [product_name] => Product2 
      [o_qty] => 5.00 
      [d_qty] => 
     ) 

    [1] => Array 
     (
      [product_id] => 3 
      [product_name] => Product 1 Category 2 
      [o_qty] => 5.00 
      [d_qty] => 54.00 
     ) 
    [3] => Array 
     (

      [product_id] => 7 
      [product_name] => afdasdf 
      [o_qty] => 3.00 
      [d_qty] => 1.00 
     ) 
    ) 
[1] => Array 
     (
      [product_id] => 4 
      [product_name] => Product 2 category 2 
      [o_qty] => 1.00 
      [d_qty] => 2.00 
     ) 

[3] => Array 
     (
      [product_id] => 6 
      [product_name] => product_name 
      [o_qty] => 
      [d_qty] => 1.00 
     ) 
) 
+2

你尝试过什么\? – Unihedron

+1

那你有没有做过什么?如果这样显示它 –

+0

已尝试array_intersect函数,但无法获得正确的结果 – Priyank

回答

2

建立了一个foreach循环的新阵列

$output = array(); 
foreach ($arr as $v) { 
    $k = $v['order_id']; 
    unset($v['order_id']); 
    $output[$k][] = $v; 
}