2017-07-19 10 views
0

を持つ2つのデータを取得します。私はこのようなコントローラで何らかの形から2つのparamsを取得:1つのループ

$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 
      ) 

良い、今私は、各ループに取得したいがa 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'と' qty'sを接続する場合は、すべての 'id'に対応する' qty'(またはそれ以外の方法でも問題ありません)、 '$ productId'の値をキーとして、' qty'の値を値として連想配列を作成すると、 '[106 => 4 、107 => 3、...] 'である。 'foreach()'の中の値として、キーとして 'id'と' qty'の両方の値にアクセスできます。 –

+0

良いアイデア、どのように2つを関連付けるのですか? '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配列のキーを直接使用することができます。テストしませんでしたが、ここにあります:

関連する問題