Обновить значение в массиве сеансов php

У меня вопрос о массиве SESSION.

Я просто добавляю элемент и количество в другой сеанс. Я использую код следующим образом:

$_SESSION['idproduct'] = $id.","; $_SESSION['qtyproduct'] = $qty.","; 

Я написал условие, поэтому значение сеанса будет таким, если мы добавим 3 элемента:

 $_session['idproduct'] = 1,4,6, $_session['qtyproduct'] = 3,4,5, 

мой вопрос в том, как обновить количество, если у меня есть идентификатор?

Related of "Обновить значение в массиве сеансов php"

Храните их как массивы, таким образом вы можете получить доступ к количеству с помощью идентификатора в качестве ключа:

 $_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;