【发布时间】:2017-01-11 08:56:12
【问题描述】:
我的所有“商店物品”旁边都有一个按钮,可以删除其中一个商店物品,但是我需要它来删除一个,而不是删除整个数字数组,我认为这可以通过使用当我找到要删除的数字时的中断语句,但它删除了所有数字。
if (isset($_GET['remove']) && isset($_SESSION['shopitems'])) {
if (in_array($_GET['remove'], $_SESSION['shopitems'])) {
for ($i = 0; $i < sizeof($_SESSION['shopitems']); $i++) {
if ($_SESSION['shopitems'][$i] == $_GET['remove']) {
$shopArray = $_SESSION['shopitems'];
if(sizeof($shopArray) == 1) {
$_SESSION['shopitems'] = null;
$_SESSION['added'] = null;
} else {
array_splice($shopArray, $i, $i);
$_SESSION['shopitems'] = $shopArray;
}
break;
}
}
}
}
在这里我检查 URL 是否包含删除变量并设置会话,一旦我这样做了,我检查数组是否包含放在 URL 中的数字,如果是,我将启动一个 for 循环并检查会话商店项目的键索引是否等于 URL 变量,如果是,我想删除它,但是如果我使用 array_splice,突然它们都消失了,这是因为我正在使用的函数吗?还是中断没有正确执行?
【问题讨论】:
-
$_SESSION['shopitems'] = null将清除所有 shopitems 数组。您只需要清除所需的项目就像这样$_SESSION['shopitems'][$i] = null
标签: php arrays session-variables