如何访问存储在会话数组中的信息


How to access info stored in session array?

给定以下代码:

session_start();
$cart = $_SESSION['cart'];
print_r($_SESSION['cart']);

然后我可以看到我想访问的内容:

阵列([153c740f526f2fa8aac9e1ddfdce2716]=>阵列([deal_id]=>38[variation_id]=>[variation]=>[quantity]=>6[data]=>……

还有更多,但这是最基本的。。。

我想做的是获取并设置数量:

所以我尝试过:

$cart = $_SESSION['cart'];
for ($i = 0 ; $i < count($cart) ; $i ++)
{
    echo "The session variable you want" . $_SESSION['cart'][$i]['deal_id'];
    echo "<br>";
}

但是没有输出,我做错了什么?

foreach ($_SESSION['cart'] as $k => $data) {
    echo "The session variable you want" . $data['deal_id'];
    $_SESSION['cart'][$k]['deal_id'] = 'new id';
}

根据您刚刚打印的数据,在"cart"中,数组是关联的,而不是数字的。

要遍历关联数组,请使用foreach和$someArray as $key => $val表达式

购物车没有按序列索引进行索引,您不能以这种方式循环它,您需要使用foreach循环:

foreach($_SESSION['cart'] as $index => $value)
  echo "Var = " . $value['deal_id'];

如果要设置值,请通过引用循环值

foreach($_SESSION['cart'] as $index => &$value)
{
  echo "Var = " . $value['deal_id'];
  $value['deal_id'] = 'newValue';
}

您将通过使用foreach循环来简化事情

foreach ($_SESSION['cart'] as $k => $data) {
    echo "The session variable you want" . $data['deal_id'];
    echo "<br>";
    $_SESSION['cart'][$k] = "new Value";
}

使用foreach循环迭代$_SESSION数组:

foreach($cart as $k=> $value){
echo "The session variable you want" . $data['deal_id']. "<br>";
$_SESSION['cart'][$k] = "newValueGoesHere"; //setting the new value
}

使用foreach语句

foreach($cart as $key=>$value){
    echo "The session variable you want" . $value['deal_id'];
    echo "<br>";
}