2016-12-27 106 views
0

请点我在哪里我错了我的形式,以及如何获得访问$ _ POST数据通过它的关键如何通过PHP数组中的键访问值?

这里是我的表单输入:

<input type="hidden" name="<?php echo $products_in_cart; ?>['product_name']" value="<?php echo $_SESSION['cart']['products'][$val['sku']]['product_name']; ?>"> 
<input type="hidden" name="<?php echo $products_in_cart; ?>['qty_in_cart']" value="<?php echo $_SESSION['cart']['products'][$val['sku']][$qty]; ?>"> 
<input type="hidden" name="<?php echo $products_in_cart; ?>['price_for_item']" value="<?php echo $val['price_item']; ?>"> 
<input type="hidden" name="<?php echo $products_in_cart; ?>['price_for_all_items_in_cart']" value="<?php echo $price_item_total; ?>"> 

捕获数据:

$products_in_cart = $_POST['products_in_cart']; 

for ($i=0; $i < count($products_in_cart); $i++) { 
    echo "<pre>"; 
    print_r($products_in_cart[$i]); 
    echo "</pre>"; 

    // !!! ISSUE: Can't access by this key 
    // echo $products_in_cart[$i]['product_name'] . "<br>"; 
} 

阵列:

> [products_in_cart] => Array 
>  (
>   [0] => Array 
>    (
>     ['product_name'] => Котёл на отработанном масле «EcoBoil-18/30» 
>     ['qty_in_cart'] => 1 
>     ['price_for_item'] => 35200 
>     ['price_for_all_items_in_cart'] => 35200 
>   ) 
> 
>   [1] => Array 
>    (
>     ['product_name'] => Калорифер воздушный «HotAir-2/36» 
>     ['qty_in_cart'] => 2 
>     ['price_for_item'] => 48000 
>     ['price_for_all_items_in_cart'] => 96000 
>   ) 
> 
> ) 

UPD 这样的工作,但不能findout IA为什么不能获得通过的关键

foreach ($products_in_cart as $product) { 
    foreach ($product as $p) { 
     echo $p . "<br>"; 

     // This not works: 
     // echo $p['product_name'] . "<br>"; 
    } 
} 
+0

你能回应类似'$ products_in_cart [1] ['price_for_item']'吗? – Michel

回答

1

访问而不是使用for loop的你应该使用foreach loop这样的:

foreach($products_in_cart as $arr) { 
    echo "<pre>"; 
    print_r($arr); 
    echo "</pre>"; 

    // Access inner keys 
    echo $arr['product_name'] . "<br>"; 
} 

查看更多有关foreach()docs

+0

不适用于我的情况=( – DeN

1

您是否尝试过做类似:

foreach($products_in_cart as $product) { 
     echo "<pre>"; 
     echo $product['product_name']. "<br>"; 
     echo $product['qty_in_cart']. "<br>"; 
     echo $product['price_for_item']. "<br>"; 
     //and so on... 
     echo "</pre>"; 
    } 
+0

不,这不适用于我的情况 – DeN

1

如果您的帖子末尾输出的数组是正确的,那么您有一个包含关联数组的数字索引数组。所以你需要循环通过数字数组,然后通过键访问特定的关联数组。

<?php 
// print just the product_name 
for($i=0;$i<count($products_in_cart);$i++){ 
    print($products_in_cart[$i]['product_name']); 
} 

// print everything about the products_in_cart 
for($i=0;$i<count($products_in_cart);$i++){ 
    foreach($products_in_cart[$i] as $key=>$value){ 
     print($key." : ".$value); 
    } 
} 
?>