2017-07-19 31 views
0

我得到某种形式的两个参数的控制是这样的:得到两个数据与一个循环

$productIds = $this->getRequest()->getParam('productId'); 
$productQtys = $this->getRequest()->getParam('qty'); 

结果:

[productId] => Array(
       [0] => 106 
       [1] => 107 
       [2] => 108 
       [3] => 109 
       )  
[qty] => Array(
       [0] => 4 
       [1] => 3 
       [2] => 2 
       [3] => 1 
      ) 

好,现在我想在每个循环得到一个productIdqty

我测试了它适用于产品,但我不能得到一个数量:

foreach($productIds as $prod) { 
    //some code... 
    $product = Mage::getModel('catalog/product') 
        ->setStoreId(Mage::app()->getStore()->getId()) 
        ->load($prod); 
    $cart->addProduct($product->getId(), $qty) // here how i get the $qty of each product, if i put it manually it works, 2 for exemple, it add 2 for all products 

} 
+0

如果你想连接'id's和'qty's,那么每个'id'都有一个对应的'qty'(或者其他方式,无所谓),您应该创建一个关联数组,其中'$ productId'的值作为键和'qty'的值作为值,所以您得到如下形式:'[106 => 4 ,107 => 3,...]。然后你可以在'foreach()'中访问这两个值,'id'作为关键字,'qty'作为值。 –

+0

好主意,如何将两者联系起来? 'array_merge'?如果你可以回答这个问题,那就太好了 – mya

+0

你正在寻找的函数是[array_combine()](http://php.net/manual/en/function.array-combine.php)。 –

回答

0
array_combine($productIds,$productQtys) 

结果:

array(
     [1639] => 6 
     [1640] => 4 
     [1641] => 3 
     [1646] => 2 
) 

//Thanks to @Tobias F 
+0

这会给你你正在寻找的结果:) –

0

如果你的钥匙对应那么您可以将您的foreach延伸到关键=>值施工。然后你可以直接使用qty数组中的键。没有测试它,但它在这里:

foreach($productIds as $key => $prod) { 

    $product = Mage::getModel('catalog/product') 
        ->setStoreId(Mage::app()->getStore()->getId()) 
        ->load($prod); 
    $cart->addProduct($product->getId(), $qty[$key]) 
}