2014-11-17 8 views
0

저는 PHP에서 초보자입니다. 조금 이상한 질문을하면 사과드립니다.php 배열의 각 키와 값을 나열하십시오.

POST 배열과 세션 배열에 저장하는 2 개의 변수를 확인하려고합니다. 2 개의 변수는 장바구니에있는 항목의 크기와 색상입니다.

이 두 변수가 세션 배열에 이미 존재하는지 어떻게 확인할 수 있습니까? 그것이 맞다면 나는 단지 그것들의 양을 증가시키고 싶다. 사실, 나는이 경우를 확인하기 위해 if 문을 작성하기 위해 실종되었다고 생각한다. 코드는 다음과 같습니다.

if (isset($_POST['ID']) && isset($_POST['SIZE']) && isset($_POST['COLOR'])) { 

    $product = $_POST['ID']; 
    $size = $_POST['SIZE']; 
    $color = $_POST['COLOR']; 

    $Found = false; 
    $i = 0; 
    // If the cart session variable is not set or cart array is empty 
    if (!isset($_SESSION["myArray"]) || count($_SESSION["myArray"]) < 1) { 
     // RUN IF THE CART IS EMPTY OR NOT SET 
    $_SESSION["myArray"] = array(0 => array("productID" => $product, "quantity" => 1, "size"=> $size, "color" => $color)); 
    } else { 
    // RUN IF THE CART HAS AT LEAST ONE ITEM IN IT 
    foreach ($_SESSION["myArray"] as $each_item) { 
      $i++; 
      while (list($key, $value) = each($each_item)) 
      { 
      if (($key == "productID" && $value == $product))//<- IT'S PROBABLY WHERE I SHOULD CHECK THEM BUT HOW???? 
      { 
       // That item is in cart already so let's adjust its quantity using array_splice() 
       array_splice($_SESSION["myArray"], $i-1, 1, array(array("productID" => $product, "quantity" => $each_item['quantity'] + 1, "size"=> $size, "color" => $color))); 
       $wasFound = true; 
      } // close if condition 
      } // close while loop 
    } // close foreach loop 
     if ($Found == false) { 
     array_push($_SESSION["myArray"], array("productID" => $product, "quantity" => 1, "size"=> $size, "color" => $color)); 
     } 
    } 
} 

도움을 주신 분들께 미리 감사드립니다.

+0

"이 두 변수에 존재하는 경우 내 세션 배열 ... "'in_array ($ _ POST [ 'var'], $ _SESSION)'는 아마도 도움을 줄 수 있습니다. – Zerquix18

+1

Zerquix 씨, 정말 고마워요;) 쉽고 완벽하게 작동합니다. – adam

답변

0

배열의 키와 값을 나열해야합니까? 논문이 개 변수는 이미 내 세션 배열에 존재하는 경우

foreach ($_SESSION["myArray"] as $key=>$each_item) { 

는 어떻게 확인할 수 있습니다.

if(array_key_exist('color',$_SESSION["myArray"])) 
0

는 당신이 쉽게 일 (myArray의 내 생각에 나쁜 이름이 같다)가 필요합니다 같아요

$product_id = $_POST['ID']; //You should sanitize this input! 
if(array_key_exist($product_id,$_SESSION["myCart"])) { 
    $_SESSION["myCart"][$product_id]['quantity']++; 
} else { 
    $size = $_POST['SIZE']; //Sanitize this input as well 
    $color = $_POST['color']; 
    $_SESSION["myCart"][$product_id] = array(
     'size' => $size, 
     'color' => $color, 
     'quantity' => 1, 
    ); 
} 

는 희망이 도움을 :)

관련 문제