Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多维数组的帮助_Php_Arrays_Session - Fatal编程技术网

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);