У меня вопрос о массиве SESSION.
Я просто добавляю элемент и количество в другой сеанс. Я использую код следующим образом:
$_SESSION['idproduct'] = $id.","; $_SESSION['qtyproduct'] = $qty.",";
Я написал условие, поэтому значение сеанса будет таким, если мы добавим 3 элемента:
$_session['idproduct'] = 1,4,6, $_session['qtyproduct'] = 3,4,5,
мой вопрос в том, как обновить количество, если у меня есть идентификатор?
Храните их как массивы, таким образом вы можете получить доступ к количеству с помощью идентификатора в качестве ключа:
$_SESSION['quantity'][$id] = $quantity;
Поэтому вместо хранения вашего идентификатора и количества в двух отдельных строках вы имеете их в одном массиве с идентификатором в качестве ключа. Преобразование вашего примера над массивом будет выглядеть так:
array( 1 => 3 4 => 4 6 => 5 );
Затем, если вы хотите добавить / настроить что-либо, вы просто установите $id
и $quantity
в соответствующие значения и используйте строку выше.
Вы можете использовать функцию explode
и вставить другой элемент в array
$items = explode($_SESSION['idproduct']); $items[] = $your_new_value; print_r($items); // this will you the values inside the array. $_SESSION['idproduct'] = implode(',', $items);
Лучший способ добиться этого – хранить количество в качестве значения с идентификатором продукта в качестве ключа, поэтому, если у вас есть:
idproduct = 1,4,6, qtyproduct = 3,4,5,
Сохраните его как:
$_SESSION['qtyproduct'] = array( 1 => 3, 4 => 4, 6 => 5, );
Прямо сейчас, если у вас есть идентификатор продукта:
$id = 4;
Вы можете получить доступ к количеству с помощью:
$quantity = $_SESSION['qtyproduct'][$id];
и изменить его с помощью:
$_SESSION['qtyproduct'][$id] = 7;