PHP on найдите массив с двумя ключами, равными двум значениям в массиве, и удалите его из массива

#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.