输出一个数组
问题描述:
我创建了一个名单特征,它有点像购物车。 I输出的候选名单中的项目的条件:输出一个数组
$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]输出全部混乱,因为阵列不是孤立的顺序。我应该重新编码数组的输出方式还是我从数组中删除项目的方式?
答
最有效的解决办法是简单地改变你的阵列输出方式:
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;
虽然我推荐第一个选项。
也许你应该使用FOR instaad的WHILE?还可以尝试VAR_DUMP($ _ SESSION ['shortlistArray'])以确保删除前没有问题。 –