【问题标题】:help with multi dimentional arrays帮助处理多维数组
【发布时间】:2010-05-12 01:06:02
【问题描述】:

我正在构建一个购物车,但不知道如何将这样的东西存储到会话中。

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

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

因此,当用户选择产品的数量然后选择其颜色然后选择添加到购物车时,我希望将所选项目添加到会话中,并将每个项目添加到购物车中,选择其属性添加到一个会话。我该怎么做?

非常感谢。

【问题讨论】:

  • 您是在问如何将数组存储到会话中,还是在问如何制作多维数组?

标签: php arrays session


【解决方案1】:
$_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() 放在每个页面的开头,以便在页面中进行会话。

【讨论】:

  • 当您想要一个红色的 productid1 而另一个绿色的 productid1 时会发生什么?
  • 不可能 productid1 实际上是产品的 id。所以为 product1 选择的所有属性都是通过 html 字段选择的。但是当用户选择其他方式时会更新。
  • 是的,这就是我的观点。如果客户想购买两个具有相同 product_id 的小部件(一个是红色的,另一个是绿色的),那么它不会起作用。颜色将被覆盖为第二选择,客户不会得到他们想要的。
  • 哦,你的权利。感谢您指出了这一点。尽管我已经多次研究和使用它,但我在理解多数组方面遇到了很大的问题。我们可以谈谈即时通讯程序吗?我用瞄准我的网名是sarmenhb
  • 实际上我考虑过它,如果我检查该值是否存在并用新值更新它,它只会替换附加值。但如果我只是将另一个存在于数组中的产品 id 附加到数组中,那我就可以了。
【解决方案2】:

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

两者都可以,只要确保你是一致的。仅使用其中一种。

【讨论】:

  • 正如@Duniyadnd 所说,将 session_start() 放在每个页面的开头。分配给 $_SESSION 变量,然后将其放入会话中。
【解决方案3】:

您应该在会话数组中为您的产品创建一个数组:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    相关资源
    最近更新 更多