2013-07-24 60 views
0

鉴于以下代码:如何访问存储在会话数组中的信息?

session_start(); 

$cart = $_SESSION['cart']; 

print_r($_SESSION['cart']); 

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

阵列([153c740f526f2fa8aac9e1ddfdce2716] =>数组([DEAL_ID] => 38 [variation_id] => [变化] => [数量] => 6 [数据] => ......

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

我希望能够做的是获取和设置数量:

所以我已经试过:

$cart = $_SESSION['cart']; 

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

} 

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

回答

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

@JL。检查更新的代码 – JimiDini

+0

$ _SESSION ['cart'] [$ k] ['deal_id'] = $ newData; – Mash

1

根据您刚刚打印的数据,“购物车”内,该阵列是关联的,而不是数值。

要通过关联数组遍历,使用foreach与$someArray as $key => $val表达

+0

如何在关联数组中设置数据? –

+0

只是设置它等于某件事。我不会在这里写出来,因为从字面上看,每个答案都已经有了。 :) – Kristian

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'; 
} 
1

您使用foreach语句

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

您将使用foreach环简化事情

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

}