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 )

我希望将其保存为数组,最好的方法是什么?

4

1 回答 1

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";
}
于 2012-10-03T07:56:06.643 回答