输出一个数组

时间:2011-09-25 13:44:58

标签: php arrays

我创建了一个短名单功能,有点像购物车。我通过以下方式输出候选名单中的项目:

$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顺序。我应该重新编码我的数组输出方式还是我从数组中删除项目的方式?

1 个答案:

答案 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;

我建议第一个选项。