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

时间:2013-07-24 17:17:37

标签: php

给出以下代码:

session_start();

$cart = $_SESSION['cart'];

print_r($_SESSION['cart']);

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

  

数组([153c740f526f2fa8aac9e1ddfdce2716] =>数组([deal_id] => 38 [variation_id] => [variation] => [数量] => 6 [数据] => .....

还有更多,但这是基础......

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

所以我试过了:

$cart = $_SESSION['cart'];

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

}

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

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

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

一起使用

答案 2 :(得分:1)

购物车没有按顺序索引编制索引,你不能以这种方式循环,你需要使用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';
}

答案 3 :(得分:1)

你使用foreach声明

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

答案 4 :(得分:1)

您将使用foreach循环

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

答案 5 :(得分:1)

使用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

}