2016-02-12 69 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