簡體   English   中英

會話數組未設置並刪除行

[英]Session array unset and delete row

我得到了產品的ID並嘗試從會話數組中刪除。我使用unset並一切正常,但是當我嘗試在循環中顯示數據時,會話仍然具有已刪除的行,因此我得到錯誤未定義的偏移量:0 。我使用第二個會話,它只具有第一個會話的計數,因此當我刪除一行時,它可以正常工作。但是,當我對多維會話嘗試相同的操作時($ _SESSION ['cart'] = $ _SESSION ['cart'] -1;)它不起作用,並且出現錯誤不支持的操作數類型。

因此,總而言之,我需要從會話數組中刪除特定數據,當我使用unset時,它確實會刪除它,但是如果我有3種產品,則該數組仍具有所有索引,因此我刪除了第二個,而當我顯示它們時,該數組仍然索引為0,1,2 ..

這是我的代碼

$cart = $_SESSION['cart'];
$c=$_SESSION['c'];

$id=$_GET['id'];


unset($_SESSION['c'][$id]);
unset($_SESSION['cart'][$id]);


$_SESSION['c'] = $_SESSION['c'] -1;
$_SESSION['cart'] = $_SESSION['cart'] -1;

更換

$_SESSION['c'] = $_SESSION['c'] -1; 

通過

$_SESSION['c'] = array_values($_SESSION['c']);

因為您正嘗試從N維數組中減去數值,所以“ -1”將引發錯誤。 完成取消設置/刪除操作后, array_values將返回更新的$ _SESSION ['c']。

PS也相應地為$ _SESSION ['cart']更新代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM