我创建了一个短名单功能,有点像购物车。我通过以下方式输出候选名单中的项目:
$i = 0;
while ($i < $countArray){
echo $_SESSION['shortlistArray'][$i]." <a href='shortlistRemoveItem.php?arrayID=$i'>[x]</a><br />";
$i++;
}
并按
删除项目$arrayID = $_GET["arrayID"];
unset($_SESSION['shortlistArray'][$arrayID]);
问题在于,当我从数组中删除一个项目,例如$ _SESSION ['shortlistArray'] [2]时,输出全部搞砸了,因为数组不是londer顺序。我应该重新编码我的数组输出方式还是我从数组中删除项目的方式?
答案 0 :(得分:1)
最有效的解决方案是简单地改变数组的输出方式:
foreach($countArray as $key => $item){
echo $_SESSION['shortlistArray'][$key]." <a href='shortlistRemoveItem.php?arrayID=$key'>[x]</a><br />";
}
如果您坚持要更改从阵列中删除项目的方式,请考虑以下方法:
$arrayID = $_GET["arrayID"];
$tempArray = array();
foreach($countArray as $key => $item){
if($arrayID == $key) continue;
$tempArray[] = $item;
}
$_SESSION['shortlistArray'] = $tempArray;
我建议第一个选项。