Многомерный массив в PHP 5

0

У меня есть простой вопрос, но я не могу этого сделать.

У меня этот многомерный массив в моей системе:

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']?

Спасибо, Марсело.

Теги:
multidimensional-array
php-5.5

2 ответа

2
Лучший ответ

Вам нужно вставить новые продукты в виде массива массива. Попробуй так:

$_SESSION['cart'][] = array("id" => $id_produto, "tamanho" => $tamanho_produto, "qtde" => 1);
0

Вы можете использовать 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]);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню