2011-05-06 79 views
1

問題: 我從Magento的存儲模型類,可以是一個變量獲得儘可能PHP與邏輯論證多維數組(一些腦扭曲)

$productArray[] = array(); 
foreach ($order->getAllItems() as $item) { 
    $productArray[] = array(
     "product" => $item->getName(), 
     "qty" => $item->getQtyOrdered(), 
     "amount" => $item->getPrice(), 
    ); 
} 

這是值當的print_r的$ productArray []:
樣本輸出1:

array(1) { 
    [0]=> 
    array(3) { 
    ["product_name"]=> 
    string(12) "Test Product" 
    ["product_qty"]=> 
    string(6) "2.0000" 
    ["product_price"]=> 
    string(7) "12.0000" 
    } 
} 


樣本輸出2:

array(2) { 
    [0]=> 
    array(3) { 
    ["product_name"]=> 
    string(12) "Test Product" 
    ["product_qty"]=> 
    string(6) "2.0000" 
    ["product_price"]=> 
    string(7) "12.0000" 
    } 
    [1]=> 
    array(3) { 
    ["product_name"]=> 
    string(6) "Test 2" 
    ["product_qty"]=> 
    string(6) "5.0000" 
    ["product_price"]=> 
    string(7) "22.0000" 
    } 
} 

你怎麼可以把它像這樣的(應該是打印這樣)
如果輸出1:最終輸出1

<input type="hidden" name="product" value="Test Product" /> 
<input type="hidden" name="amount" value="24.00" /> 


如果輸出2:最終輸出2

<input type="hidden" name="product1" value="Test Product" /> 
<input type="hidden" name="amount1" value="24.00" /> 
<input type="hidden" name="product2" value="Test 2" /> 
<input type="hidden" name="amount2" value="110.00" /> 

值將 PRODUCT_PRICE * product_qty來獲得。

有一些有趣的:) 這僅僅是一個虛擬的問題,但是這可能是幫助他人

回答

2

像這樣:

<?php 
foreach($productArray as $i => $product){ 
    $index = count($productArray) == 1 ? "" : $i; //So we don't have index when only 1 element 
    $amount = $product['product_price'] * $product["product_qty"]; 
    $name = $product['product_name']; 
?> 
    <input type="hidden" name="product<?php echo $index; ?>" value="<?php echo $name;?>" /> 
    <input type="hidden" name="amount<?php echo $index;?>" value="<?php echo $amount;?>" /> 
<?php 
} 
?> 

希望這有助於。乾杯

+1

+1你擊敗了我! ;) – DondeEstaMiCulo 2011-05-06 20:28:38

+0

haha​​haha ...這有助於! – Jorge 2011-05-06 20:48:38

1

不知道的Magento但在正常的PHP這將是:

<?php 
    $productArray = array(
    array(
     "product_name" => "Test Product", 
     "product_qty" => "2.0000", 
     "product_price" => "12.0000" 
), 
    array(
    "product_name"=> "Test 2", 
     "product_qty"=>"5.0000", 
     "product_price"=>"22.0000" 
    ) 
); 

    foreach($productArray as $v) { 
    echo '<input type="hidden" name="product" value="'.$v["product_name"].'" />'; 
    echo '<input type="hidden" name="amount" value="'.($v["product_qty"]*$v["product_price"]).'" />'; 
    } 
?> 
0

當使PHP中的表單字段的陣列,用「產品[$ ID]」作爲名稱,然後PHP將吐出一個整潔的數組$ _POST。你甚至可以做name =「product [$ id] [price]」,你會得到一個2D數組。

請注意,如果您的網上商店信任隱藏的表單數據以在結帳時牽引購物車(正如您似乎這樣做的),您會遇到一個巨大的安全漏洞,所以請張貼網址,我想免費訂購東西!

+0

haha​​haha ..正如我所說的「這只是一個虛擬的問題」。我遇到了這個問題,因爲我對他的會話輸出感到好奇。並探索多維數組。 :) – Jorge 2011-05-07 03:55:44