장바구니에서 항목을 제거하는 코드를 작성하고 있습니다. unset($_SESSION['cart'])
을 사용하여 전체 세션 변수를 설정 해제하는 대신 개별 배열 요소를 대상으로하고 싶습니다. 항목 행의 remove
버튼을 누르면 변수 'isbn'
에 저장된 고유 ID가 제출된다고 가정합니다.PHP가 요소별로 세션 변수를 설정 해제했습니다.
왜 작동하지 않습니까? unset($_SESSION['cart'][$_POST['isbn']]) ;
내 해결 방법 :
$isbn[] = $_POST['isbn'] ;
$_SESSION['cart'] = array_diff($_SESSION['cart'],$isbn);
당신이 보여 주는 것이 효과가 있습니다. 이것은 기본적인 디버깅을 요구합니다 :'$ _POST [ 'isbn']'은 무엇을 포함합니까? 세션 배열의 값과 100 % 일치합니까? 'print_r()'을 사용하여 배열을 출력하고 값을 다시 확인하십시오. –
나는 그 문제가 [9] => $ _POST [ 'isbn']이 실제 값일 수 있다고 생각한다. 9780192814968하지만 이것이 작동하려면 내가 어떤 키를 해제하고 싶은지를 알려줄 필요가있다. – raoulbia
'$ isSS [[cart ']'의 키가 정수 인 동안'$ isbn'의 값이 문자열일까요? – thetaiko