2011-05-06 77 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