【发布时间】:2017-03-13 16:01:45
【问题描述】:
我遇到了一个比我想象的更难解决的问题。并且没有找到让我到达我需要去的地方的答案。 目标是将东西添加到会话变量中的列表中,该变量的工作类似于购物车。基本上有人会在列表中添加 1 个项目,然后添加其他项目,每个项目都会添加到一个数组中。但是在使用了各种方法后,我仍然没有得到我需要的东西。
这是用户故事
- 用户单击以将项目添加到列表
- 已创建会话变量 - 将项目 ID 添加到会话变量中
- 用户添加附加项
- 添加到会话变量 session 的项目现在是一个数组
- 步骤 3 和 4 可根据用户需要重复多次。
- 这一切都需要进入一个没有嵌套的平面阵列。
下面的代码似乎是正确的解决方案。但是它只返回最新的项目 ID 而不会创建数组。我有其他创建数组的解决方案,但它们为每个附加项目创建嵌套数组,所以不是我需要的。任何帮助,将不胜感激。
//Request Item From Post
$itemAdded = $_REQUEST['pPageItemID']; $currentItems = $_SESSION['ITEM_IDS'];
//如果已经设置了会话,则将其更改为数组以添加多个ID if (isset($_SESSION['ITEM_IDS'])) {
//Check to see if this is acutally a form post and then set session
if (isset($_REQUEST['pPageItemID'])){
$newItems = array_merge($currentItems, $itemAdded);
//Set new session with old and new IDs
$_SESSION['ITEM_IDS'] = $newItems;
}
}
//如果没有设置会话,则检查是否设置了会话变量并添加产品ID if (is_null($_SESSION['ITEM_IDS'])) {
//Check to see if this is acutally a form post and then set session
if (isset($_REQUEST['pPageItemID'])){
$_SESSION['ITEM_IDS'] = $itemAdded;
}
}
【问题讨论】: