#php #arrays #session
#php #массивы #сессия
Вопрос:
Я разрабатываю корзину покупок. Я сохраняю корзину за один сеанс. Я могу добавить товар в корзину. Но я не знаю, как удалить продуктовую линейку из сеанса корзины.
Структура сеанса; Сеанс содержит массив и массивы продуктов в нем. Я хочу получить доступ к массиву, который я хочу удалить, с помощью двух ключей.
//Create basket session
$_SESSION['basket'] = [];
//Add a Product
$productArray = ['prodID' => '1', 'quantity' => '3'];
$_SESSION['basket'][] = $productArray;
//Post method comes with two variables (keys).
$prodID = $_POST['prodID'];
$quantity = $_POST['quantity'];
//How can I remove the array with keys equal to $prodID and $quantity within the session ?
Комментарии:
1. Вы могли бы установить идентификатор продукта в качестве ключа в массиве корзины:
$_SESSON['basket'][1337] = ['prodID' => 1337, 'quantity' => 3]
. Затем вы всегда можете получить доступ к этой конкретной строке (поскольку они заданы в product id), выполнив:$_SESSION['basket'][$prodID]
2. Я думаю, что это привлекательное решение. Спасибо.
Ответ №1:
Во-первых, поскольку ваш prodID должен быть уникальным в сеансе, вы можете установить его в качестве basket
ключа
//Create basket session
$_SESSION['basket'] = [];
//Add a Product
$productArray = ['prodID' => '1', 'quantity' => '3'];
$_SESSION['basket'][$productArray['prodID']] = $productArray;
//Post method comes with two variables (keys).
$prodID = $_POST['prodID'];
$quantity = $_POST['quantity'];
//How can I remove the array with keys equal to $prodID and $quantity within the session ?
//Now you only need to update / replace the quantity here.