2012-10-03 48 views
1

我正在構建一個結帳系統,我正在嘗試將產品添加到會話變量。但我堅持我應該如何拯救他們。如何保存例如5種產品?如何在會話中存儲相同的值?

我嘗試使用這樣的事情,但是,這並不工作:

$_SESSION['cart']['productIds']['id'] .= $_POST['productid']; 
$_SESSION['cart']['productPrices']['price'] .= $_POST['price']; 

的輸出是這樣的(兩次,ID 2和價格的20產品):

Array ([productIds] => Array ([id] => 22) [productPrices] => Array([price] => 2020) 

我想將它保存爲一個數組,這是什麼最好的方法?

+1

你知道如何使用*數組* *? – deceze

+0

輸出是否讓您感到驚訝?你有什麼期望呢? – artistoex

+0

'。='不是一個有效的[數組運算符](http://php.net/manual/en/language.operators.array.php),請使用'+ ='來代替 – Touki

回答

3

您應該將會話變量視爲數組而不是字符串。使用[]操作追加到它:

$_SESSION['cart']['products'][] = array(
    'id' => $_POST['productid'], 
    'price' => $_POST['price'], 
); 

您也可以使用array_push()如果你想。稍後,您可以遍歷產品,如:

foreach ($_SESSION['cart']['products'] as $product) { 
    echo $product['id'], ': ', $product['price'], "\n"; 
}