簡體   English   中英

如何增加 session 數組值?

[英]How to increment the session array value?

我在購物車上使用它

if (!empty($_getvars['id'])) {
    $data = $session->get('cart');
    $data[] = $_getvars['id'];
    $session->set('cart', $data);
} 

$_getvars['id']是 productid,每次點擊都會向 session 添加一個新的數組元素。 它現在工作得很好,但是如果一個產品被多次選擇,一個新的數組將被添加,如何改變它,productid 將是數組偏移量,並且每次都會從 1 增加值以反映數量?

$i = 1;
if (!empty($_getvars['id'])) {
    $data = $session->get('cart');
    $data[$_getvars['id']] = $i++;
    $session->set('cart', $data);
} 

但此代碼每次重置為 1。如何解決? 或者任何更好的購物車數組結構?

如果未設置,請將其設置為零,然后始終加一。

if (!empty($_getvars['id'])) {
    $data = $session->get('cart');
    if(!isset($data[$_getvars['id']]){
        $data[$_getvars['id']] = 0;
    }
    $data[$_getvars['id']] += 1;
    $session->set('cart', $data);
} 

或者您可以添加動態數量

if (!empty($_getvars['id'])) {
    $data = $session->get('cart');
    if(!isset($data[$_getvars['id']]){
        $data[$_getvars['id']] = 0;
    }
    // $_GET['qty'] OR 1, if not set
    $qty = (!empty($_getvars['qty']))? $_getvars['qty']: 1;
    $data[$_getvars['id']] += $qty;
    $session->set('cart', $data);
} 

暫無
暫無

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

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