помочь с многомерными массивами - PullRequest
0 голосов
/ 12 мая 2010

Я строю корзину для покупок и не могу понять, как сохранить что-то подобное в сессии.

[product_id1] = quantity;
[product_id1] = size
[product_id1] = color;

[product_id2] = quantity;
[product_id2] = size;
[product_id2] = color;
...
etc

поэтому, когда пользователь выбирает количество товара, затем выбирает его цвет, затем выбирает добавить его в корзину, я хочу, чтобы выбранные элементы были добавлены в сеанс, а каждый элемент добавлен в корзину, а выбранные атрибуты добавлены в сеанс. как бы я это сделал?

большое спасибо.

Ответы [ 3 ]

0 голосов
/ 12 мая 2010

Вы должны создать массив в массиве сессии для ваших продуктов:

$ _ SESSION ['products'] = Array ();

тогда вы можете поместить туда товары вот так:

$product = Array();
$product['quantity'] = 6;
$product['size'] = 'XXL';
$product['color'] = 'blue';

$_SESSION['products'][] = $product;

$product = Array();
$product['quantity'] = 2;
$product['size'] = 'XL';
$product['color'] = 'blue';

$_SESSION['products'][] = $product;

это даст вам пронумерованный массив, если вы хотите ассоциативный массив, вы просто поместите идентификатор в []:

$_SESSION['products']['productID'] = $product;
0 голосов
/ 12 мая 2010

$item[$catalog_number]['quantity'] = 1;
$item[$catalog_number]['size'] = 'XL';
$item[$catalog_number]['color'] = 'yellow';
$_SESSION['cart'][] = $item;
unset($item);

Повторите для каждого добавляемого элемента. В качестве альтернативы вы можете сделать:


$item['catalog_number'] = 'ABC-123';
$item['quantity'] = 1;
$item['size'] = 'XL';
$item['color'] = 'yellow';
$_SESSION['cart'][] = $item;
unset($item);

Оба будут работать, просто убедитесь, что вы последовательны. Используйте только один или другой.

0 голосов
/ 12 мая 2010
$_SESSION['productid1']['quantity'] = 15;
$_SESSION['productid1']['size'] = 30;
$_SESSION['productid1']['color'] = 'red';

$_SESSION['productid2']['quantity'] = 35;
$_SESSION['productid2']['size'] = 2;
$_SESSION['productid2']['color'] = 'blue';

Не забудьте поставить session_start() в начале каждой страницы для переноса сеансов по страницам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...