如何按索引删除数组元素


How to delete array element by index

有什么可能的方法可以从数组中删除元素吗?它是存储商品ID的购物车。我想制作删除功能。

例如 - cart_handler.php?删除=2687

array(5) { [1967]=> float(1) [1966]=> float(1) [2233]=> float(5) [2687]=> float(1) [2081]=> float(4) } 

是的,你可以,最简单的方法是在数组中搜索项目 ID,然后取消设置与之关联的键 - 然后作为扩展,您可以重新设置数组以修复数组键。请注意:我还没有对$arrayKey及其返回的内容进行任何验证,为了安全起见,您应该确保 array_search 函数在取消设置数组键之前按预期返回。

所以像这样:

$data = [1967, 1966, 2233, 2687, 2081];
$arrayKey = array_search(1966, $data);
unset($data[$arrayKey]);

指定的产品 ID 将取消设置,只需将 1966 替换为您的 $_GET 变量即可。

array_search($_GET['delete'], $data)

$data数组将是所有有效产品 ID 的列表,您可以从数据库或存储它们的任何位置提取它们。

如果要在此之后重新设置键索引的基数,可以执行以下操作:

$data = array_values($data);

上面所做的是修复数组键索引,当您取消设置一个元素时,它将从数组中删除,但所有键都将保持其当前索引。因此,数组索引可能会像这样进行:0, 1, 3, 4 。如果您使用上述方法重新设置数组的基数,它们将再次自然地进行:0, 1, 2, 3 .

希望有帮助,任何问题都让我知道。