多维会话数组

时间:2012-12-03 16:58:43

标签: php session multidimensional-array increment

我使用的表单将两个MySQL数据库中的数据拖入单个动态页面。当用户单击添加到购物车时,我想将该数据存储在多维会话数组中,以便稍后在单击查看购物车时调用。我想知道当从添加到购物车表单添加新项目时如何自动递增项目的子集标识符(数组键?)。这就是我到目前为止所做的:

$newitem = array ($row_getimages['icon'],$row_getimages['title'],$row_getshoppingcart['medium'],$row_getshoppingcart['size'],$row_getshoppingcart['price'],$row_getshoppingcart['shipping']);


session_start();

if(isset($_SESSION['item'][1]))
$_SESSION['item'][1] = $_SESSION['item'][1]+ 1;
else
$_SESSION['item'][1] = 1;

此外,任何有助于调出数据的帮助都将受到赞赏。由于用户可能在会话中存储了1或20个项目,因此我不确定如何确保所有项目都会被回显,无论它们添加了多少项目。

这是我第一次参加多维数组和会话。显然,因为图像页面是动态的,购买价格基于几个因素,所以只使用我过去的可用项目的MySQL数据库是不可能的。

提前感谢您的时间。

2 个答案:

答案 0 :(得分:0)

如果数字顺序并不重要,您可以使用:

$_SESSION['item'][] = array('a','b','c','d','e','f');

使用[]只需在数组末尾添加一个新元素。

但是,我可能会使用产品ID作为密钥。

答案 1 :(得分:0)

$newitem = array ('id' => $row_getshoppingcart['id'] , 'icon' => $row_getimages['icon'],'title' => $row_getimages['title'],'medium' => $row_getshoppingcart['medium'],'size' => $row_getshoppingcart['size'],'price' => $row_getshoppingcart['price'],'shipping' => $row_getshoppingcart['shipping']);


session_start();

$_SESSION['item'][] = $newitem;

如果我理解你的系统,那就是你所要做的一切。

<强>更新

我更新了$newitem数组以包含数组键。您可以使用以下数组引用新项目信息:

  

$ _ SESSION [ '项目'] [(NUM)] [ 'ID']

或者你可以像这样循环结果:

foreach ( $_SESSION['item'] AS $item ) 
{  
 echo 'id: ' . $item['id'] . '<br />'; 
 echo 'title: ' . $item['title'];  
 // and so on 
}