2013-07-24 61 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 

}