2014-12-03 4 views
1

Я посмотрел и посмотрел, и не могу узнать, как изменить переменную сеанса и сохранить ее обратно в массив. мой код делает то, что я хочу до сих пор, и добавляет 1 к переменной, но я не знаю, как сохранить его обратно в массив. мой код выглядит следующим образом.Как изменить значение переменной массива сеанса

Любая помощь, даже если ее указание на сообщение, на которое я не смог взглянуть, поможет.

Также будут оценены любые указатели на стиль кода.

+0

'print_r' из' массива $ _SESSION' и что вы хотите изменить на и критерии его изменения помогли бы. – AbraCadaver

+0

Почему 2 foreachs '$ _SESSION ['products']'? Разве это не '$ a', как' $ cart_itm'? –

+0

@abracadaver, поэтому для его изменения это будет print_r ($ cart_itm [$ number] ['qty'])? – helmet648

ответ

1

Это, вероятно, сделать:

if($key == 'qty'){ 
    $_SESSION['products'][$key] = $val + 1; //this line 
    $val = $val + 1; 
    echo $val; 
} 

Если нет, используйте ту же концепцию: у вас есть key которые позволяют определить, какой элемент массива вы хотите изменить.

+0

спасибо человеку! это вместе с комментариями к моему вопросу помогло мне установить переменную – helmet648

0

Попробуйте это:

if(isset($_SESSION['products'])) 
{ 
    $number = 0; 
    foreach($_SESSION['products'] as $cart_itm) 
    { 
     if($cart_itm['code'] == $product_code) 
     {    
      $_SESSION['products']['qty']++; //here is the quantity of the item, no need of more loops 
      echo $_SESSION['products']['qty']; 
     } 
     else 
     { 
      echo"Item Code Did not Match"; 
     } 
     $number++; 
    } 
} 
0

, что я сделал, чтобы исправить ситуацию

if(isset($_SESSION['products'])) 
{ 

$number = 0; 

foreach($_SESSION['products'] as $cart_itm) 
{ 
    if($cart_itm['code'] == $product_code) 
    {    

     $_SESSION['products'][$number]['qty'] = $cart_itm['qty'] + 1; 
    } 
    else 
    { 
     echo"Item Code Did not Match"; 
    } 
    $number++; 
} 

}

Смежные вопросы