2015-01-30 7 views
0

간단한 질문이 있지만이 작업을 수행 할 수 없습니다. 이 배열 내 $_SESSION에 저장됩니다PHP 5의 다차원 배열

array (size=5) 
    'id_cli' => string '13' (length=2) 
    'login_cli' => string 'userlogin' (length=10) 
    'senha_cli' => string 'userpass' (length=3) 
    'cli_nome' => string 'username' (length=16) 
    'cart' => 
    array (size=3) 
     'id' => int 48 
     'tamanho' => string 'G' (length=1) 
     'qtde' => int 1 

:

나는 내 시스템이 다차원 배열을 가지고있다. 카트 키는 장바구니 제품을 저장하는 것입니다. 위의 예에서는 제품이 1 개 있습니다.

세션 배열 카트에 새로운 제품을 저장해야하지만 그렇게 할 수 없습니다. 삽입하려고하는 모든 새 제품은 삽입되지 않은 첫 번째 제품에 저장됩니다.

나는이 일을하고 내 세션에서 새로운 제품을 삽입

if(!isset($_SESSION['cart'])) 
{ 
    $_SESSION['cart'] = array(); 
} 
  • :

    • 내 장바구니 배열을 선언

      $_SESSION['cart'] = array("id" => $id_produto, "tamanho" => $tamanho_produto, "qtde" => 1); 
      

    그러나 그것은이다 작동 안함. 내 $_SESSION['cart'] 안에 새로운 배열을 삽입하려면 어떻게해야합니까?

    그리고이 $_SESSION['cart'] 배열 내의 특정 제품을 삭제하려면 어떻게해야합니까?

    감사합니다. Marcelo.

  • 답변

    2

    새 제품을 배열의 배열로 삽입해야합니다. 과 같이 그것을 시도 : 당신은 기존의 배열에 배열 요소를 삽입 할 array_push($_SESSION['cart'], $newElement);을 사용할 수 있습니다

    $_SESSION['cart'][] = array("id" => $id_produto, "tamanho" => $tamanho_produto, "qtde" => 1); 
    
    0

    .

    이 일을

    다른 방법은 $_SESSION['cart'][] = $newElement;

    는 논리 아래이

    foreach($_SESSION['cart'] as $k => $v) { 
        if($v == $arrayKeyName) 
        unset($_SESSION['cart'][$k]); 
    } 
    
    을하는

    $arrayKey=array_search($arrayKeyName,$_SESSION['cart']); 
    if($arrayKey!==false) unset($_SESSION['cart'][$arrayKey]); 
    

    대체 방법을 사용할 수있는 특정 요소를 제거하는 것입니다