2014-07-26 23 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; 
}