2016-02-12 105 views
3

我有此數組:值插入多維數組,但只得到了1插入

$order_list = array (array ("tangible", 1, 8, 1, 19000), 
         array ("tangible", 6, 2, 10, NULL), 
         array ("tangible", 1, 17, 1, 28000)); 

,我想有這樣的作爲輸出:

Array 
(
    [1] => Array  //$order_list[1] 
     (
      [0] => 8 //$order_list[2] 
      [1] => 17 //$order_list[2] 
     ) 

    [6] => Array  //$order_list[1] 
     (
      [0] => 2 //$order_list[2] 
     ) 

) 

這裏是我的代碼:

$order_array = array(); 

foreach ($order_list as $value) { 

    $vendor_id = $value[1]; 
    $product_id = array($value[2]); 
    $order_array[$vendor_id] = $product_id; 

} 

echo '<pre>'; 
print_r($order_array); 

這隻產品:

[1] => Array 
     (
      [0] => 8 
     ) 

怎麼能有這樣的:

[1] => Array 
     (
      [0] => 8 
      [1] => 17 //second value inserted into same array 
     ) 

非常感謝你的幫助。

回答

2

不需要將另一個值作爲另一個單獨的數組。只要把他們通常,一個用作鍵(在這種情況下$vendor_id),然後又作爲另一個正常值推(在這種情況下,還不如array($value[2])單獨$product_id):

foreach ($order_list as $value) { 

    $vendor_id = $value[1]; 
    $product_id = $value[2]; // just that single element, no need to assign it into another container 
    $order_array[$vendor_id][] = $product_id; 
    // use as key ^ ^then just push it 

} 

通過這樣做:

$order_array[$vendor_id] = $product_id; 

這將覆蓋該密鑰對值,而不是不斷地將元素推入其中。

+0

工程就像一個魔術,兄弟...非常感謝! –

+0

@RobertHanson很高興這有幫助 – Ghost