【问题标题】:How to increment the session array value?如何增加会话数组值?
【发布时间】:2019-10-23 16:33:31
【问题描述】:

我在购物车上使用它

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

$_getvars['id'] 是productid,每次点击都会在会话中添加一个新的数组元素。它现在工作得很好,但是如果一个产品被多次选择,一个新的数组将被添加,如何改变它,productid 将是数组偏移,并且每次都会从 1 增加值以反映数量?

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

但是这段代码每次都会重置为 1。如何修复它?还是有更好的购物车数组结构?

【问题讨论】:

    标签: php symfony session symfony4


    【解决方案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);
    } 
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    相关资源
    最近更新 更多