Php 多维数组的帮助
我正在建立一个购物车,不知道如何将这样的东西存储到会话中Php 多维数组的帮助,php,arrays,session,Php,Arrays,Session,我正在建立一个购物车,不知道如何将这样的东西存储到会话中 [product_id1] = quantity; [product_id1] = size [product_id1] = color; [product_id2] = quantity; [product_id2] = size; [product_id2] = color; ... etc 因此,当用户选择产品的数量,然后选择其颜色,然后选择添加到购物车时,我希望所选项目添加到会话中,每个项目添加到购物车中,其属性选择添加到会话
[product_id1] = quantity;
[product_id1] = size
[product_id1] = color;
[product_id2] = quantity;
[product_id2] = size;
[product_id2] = color;
...
etc
因此,当用户选择产品的数量,然后选择其颜色,然后选择添加到购物车时,我希望所选项目添加到会话中,每个项目添加到购物车中,其属性选择添加到会话中。我该怎么做
非常感谢
$_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\u start()
,以使会话贯穿整个页面。您应该在会话数组中为您的产品创建一个数组:
$\u会话['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;
对要添加的每个项目重复此操作。或者,您可以:
$item['catalog_number'] = 'ABC-123';
$item['quantity'] = 1;
$item['size'] = 'XL';
$item['color'] = 'yellow';
$_SESSION['cart'][] = $item;
unset($item);
两者都会起作用,只是要确保你是一致的。只使用一个或另一个。您是在询问如何将数组存储到会话中,还是在询问如何创建多维数组?当您希望一个红色的productid1和另一个绿色的productid1时会发生什么?不可能productid1实际上是一个产品的id。因此,为product1选择的所有属性都是通过html字段选择的。但当用户选择其他选项时会更新。是的,这就是我的观点。如果客户想要购买两个具有相同产品标识的小部件(一个红色,另一个绿色),那么它将无法工作。颜色将作为第二选择被覆盖,客户将无法得到他们想要的。哦,你说得对。谢谢你指出这一点。我在理解多阵列时遇到了一个大问题,尽管我已经学习和使用过多次。我们有机会在即时通讯程序上交谈吗?我用的是aim,我的屏幕名是Sarmenb,实际上我考虑过,如果我检查这个值是否存在并用新值更新它,它只会替换附加值。但是如果我只是在数组中添加了另一个产品id,那么我就可以了。分配给$\u会话变量,然后将其放入会话中。
$item['catalog_number'] = 'ABC-123';
$item['quantity'] = 1;
$item['size'] = 'XL';
$item['color'] = 'yellow';
$_SESSION['cart'][] = $item;
unset($item);