У меня есть простой вопрос, но я не могу этого сделать.
У меня этот многомерный массив в моей системе:
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
Этот массив сохраняется в моей $_SESSION
. Ключ тележки предназначен для сохранения продуктов в корзине. В приведенном выше примере у меня есть 1 продукт.
Мне нужно сохранить новые продукты в моей корзине массива сеансов, но я не могу этого сделать. Каждый новый продукт, который я пытаюсь вставить, сохраняется поверх первого, а не вставлен.
Я делаю это:
Объявление массива корзины:
if(!isset($_SESSION['cart']))
{
$_SESSION['cart'] = array();
}
Вставка нового продукта в мою сессию:
$_SESSION['cart'] = array("id" => $id_produto, "tamanho" => $tamanho_produto, "qtde" => 1);
Но это не работает. Что я могу сделать, чтобы вставить новые массивы внутри моей $_SESSION['cart']
?
И что мне нужно сделать, чтобы удалить конкретный продукт внутри этого массива $_SESSION['cart']
?
Спасибо, Марсело.
Вам нужно вставить новые продукты в виде массива массива. Попробуй так:
$_SESSION['cart'][] = array("id" => $id_produto, "tamanho" => $tamanho_produto, "qtde" => 1);
Вы можете использовать array_push($_SESSION['cart'], $newElement);
для вставки элемента массива в существующий массив.
Альтернативный способ сделать это: $_SESSION['cart'][] = $newElement;
Чтобы удалить определенный элемент, вы можете использовать ниже логику
$arrayKey=array_search($arrayKeyName,$_SESSION['cart']);
if($arrayKey!==false) unset($_SESSION['cart'][$arrayKey]);
Альтернативный способ сделать это
foreach($_SESSION['cart'] as $k => $v) {
if($v == $arrayKeyName)
unset($_SESSION['cart'][$k]);
}