2013-06-06 5 views
0

Я отправлял одну форму в кассе, но мне нужна моя форма для публикации нескольких повторяющихся полей.Многомерные массивы Ошибка PHP

Мой массив теперь показывает

Array 
(
    [0] => Array 
     (
      [id] => 65983c1c16d925e9a8cc4c4b3bdda1f5 
      [item] => Array 
       (
        [1] => Brent New Product 
        [2] => Crazy Product 
       ) 

      [unitprice] => Array 
       (
        [1] => 100 
        [2] => 125 
       ) 

      [quantity] => Array 
       (
        [1] => 1 
        [2] => 1 
       ) 

     ) 

) 

Но нужно, чтобы показать, как

Array 
(
    [0] => Array 
     (
      [id] => 65983c1c16d925e9a8cc4c4b3bdda1f5 
       (
        [product] => Brent New Product 
        [unitprice] => 100 
        [quantity] => 1 
       ) 
       [id] => 4326526662262 
       (
        [product] => Brent New Product2 
        [unitprice] => 140 
        [quantity] => 5 
       ) 



     ) 

) 

Когда моя форма размещена от этого page он идет на этот PHP скрипт, который собирает все значения.

session_start(); 
$price = $_POST['price']; 
$id = $_POST['id']; 
$item = $_POST['item']; 
$quantity = $_POST['quantity']; 

echo '<h1>Add to cart</h1>'; 

echo "<p>Thank you for wanting a <strong>$item</strong>!</p>"; 

//We define an associative array with the details of our new item 
$cart_row = array(
    'id' => md5(rand()), 
    'item' => $item, 
    'unitprice' => $price, 
    'quantity' => $quantity 
); 

Затем на странице корзины Я хочу, чтобы отобразить элементы в корзину, но я получаю ничего заселение коробки, он работал раньше с Сингал массива.

session_start(); 

foreach($_SESSION['cart'] as $item) { ?> 
<tr> 
    <td><?php echo $item['item']; ?></td> 
    <td><?php echo $item['unitprice'];?></td> 
    <td><?php echo $item['quantity']; ?></td> 
    <td></td> 
    <td><form id="id" name="id" method="post" action="cart.php?remove=<?php echo $item["id"] ?>"> 
     <input name="id" type="hidden" id="id" value="<? echo $item["id"]; ; ?>" /> 
     <input name="Submit" type="submit" class="formbox" value="remove" /> 
    </form></td> 
</tr> 
<?php } ?> 
+2

Ваш желаемый результат: n ot действительный массив PHP ... отсутствующие ключи для под-массивов –

+0

как я могу исправить это, чтобы использовать ключи? – Brent

ответ

0

Я считаю, что вы не можете иметь этот тип альтернативного массива вы можете сделать это, как этот

Array 
(
      [65983c1c16d925e9a8cc4c4b3bdda1f5] => (
       [product] => Brent New Product 
       [unitprice] => 100 
       [quantity] => 1 
      ) 
      [4326526662262] => (
       [product] => Brent New Product2 
       [unitprice] => 140 
       [quantity] => 5 
      ) 
) 

И напечатать как этот

session_start(); 
foreach($_SESSION['cart'] as $id => $item) { ?> 
<tr> 
<td><?php echo $item['item']; ?></td> 
<td><?php echo $item['unitprice'];?></td> 
<td><?php echo $item['quantity']; ?></td> 
<td></td> 
<td><form id="id" name="id" method="post" action="cart.php?remove=<?php echo $id ?>"> 
    <input name="id" type="hidden" id="id" value="<? echo $id; ?>" /> 
    <input name="Submit" type="submit" class="formbox" value="remove" /> 
    </form></td> 
</tr> 
<?php } ?> 

И вы можете заполнить сессию этот код

session_start(); 
$cart = array(); 

$cart[] = array(
    $id => array(
     'product' => $product_name, 
     'unitprice' => $unit_price, 
     'quantity' => $quantity 
    ) 
); 

$_SESSION['cart'] = $cart; 
+0

Жаль, что это не сработает, я думаю, что это нужно делать с обработкой массива. – Brent

+0

@BrentFrench, похоже, работает на моей локальной среде. вы можете попробовать этот учебник для решения корзины http://www.peachpit.com/articles/article.aspx?p=1962481 –

+0

Мой массив выглядит так, когда печатается сейчас. http://pastebin.com/hcpDh4ZS – Brent

Смежные вопросы