【问题标题】:How do I store the same values in a session?如何在会话中存储相同的值?
【发布时间】:2012-10-03 07:53:42
【问题描述】:

我正在构建一个结帐系统,并且正在尝试将产品添加到会话变量中。但我坚持如何拯救他们。例如,我如何保存 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 )

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

【问题讨论】:

  • 你知道如何使用数组...吗?
  • 输出有没有让你吃惊?你有什么期待?
  • .= 不是有效的array operator,请改用+=

标签: php session


【解决方案1】:

您应该将会话变量视为数组而不是字符串。使用[] 运算符附加到它:

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

如果需要,您也可以使用array_push()。稍后您可以迭代产品,例如:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-14
    • 2019-05-02
    • 1970-01-01
    • 2016-05-18
    • 2015-07-21
    • 2019-05-09
    • 2015-03-12
    • 1970-01-01
    相关资源
    最近更新 更多