2014-12-03 11 views
1

나는 보았지만 세션 변수를 변경하고 배열에 다시 저장하는 방법을 찾을 수 없습니다. 내 코드는 내가 지금까지 원하는 것을 수행하고 변수에 1을 더한다. 그러나 배열에 다시 저장하는 방법을 모른다. 내 코드는 다음과 같습니다.세션 배열 변수의 값을 변경하는 방법

if(isset($_GET['action']) && $_GET['action'] == 'addp') 
{ 
echo "trying to add 1 item to serial ".$_GET['id']."<br>"; 
$product_code = filter_var($_GET['id'], FILTER_SANITIZE_STRING); 
if(isset($_SESSION['products'])) 
{ 
    $number = 0; 
    foreach($_SESSION['products'] as $cart_itm) 
    { 

     if($cart_itm['code'] == $product_code) 
     {    
      $a = array($_SESSION['products']); 
      foreach($_SESSION['products'] as $a){ 
       foreach($a as $b){ 
        while(list($key, $val) = each($a)){ 
         if($key == 'qty'){ 
          $val = $val + 1; 
          echo $val; 
         } 
        } 
       } 
      }    

     } 
     else 
     { 
      echo"Item Code Did not Match"; 
     } 
     $number++; 
    } 
} 
else 
{ 
    echo"Session['Products'] Not Set"; 
} 
} 
else 
{ 
    echo"Action is set to ".$_GET['action']; 
} 

내가 도움을받을 수없는 게시물에 나를 가리켜도 도움이됩니다.

또한 코드 스타일의 모든 포인터가 도움이 될 것입니다.

이 아마해야
+0

앞에'은'$ _SESSION' 배열의 print_r'하고 당신이 그것을 변경하려면를 해결하기 위해 무슨 짓을했는지 그것을 바꾸는 기준이 도움이 될 것입니다. – AbraCadaver

+0

왜'$ _SESSION [ 'products']'의 두 foreach가 있습니까? '$ 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++; 
} 

}

관련 문제