Я пишу код для удаления элементов из корзины покупок. Вместо того, чтобы отменить всю переменную сеанса с помощью unset($_SESSION['cart'])
, я хотел бы настроить таргетинг на отдельные элементы массива. Предположим, что нажатие кнопки remove
в строке позиции отправит уникальный идентификатор, сохраненный в переменной 'isbn'
.PHP отключить переменную сеанса по элементу
Почему это не работает? unset($_SESSION['cart'][$_POST['isbn']]) ;
мой обходной путь:
$isbn[] = $_POST['isbn'] ;
$_SESSION['cart'] = array_diff($_SESSION['cart'],$isbn);
То, что вы показываете, должно работать. Это требует базовой отладки: что содержит '$ _POST ['isbn']'? Соответствует ли это 100% значению в массиве сеансов? Используйте 'print_r()', чтобы вывести массив и дважды проверить значения. –
Я думаю, проблема может заключаться в том, что [9] => $ _POST ['isbn'] является фактическим значением VALUE, например. 9780192814968, но для этого мне нужно сообщить программе, что KEY я хочу удалить – raoulbia
Может ли значение в '$ isbn' быть строкой, а ключ в' $ _SESSION ['cart'] 'является целым числом? – thetaiko