如何通过索引删除数组元素

时间:2016-02-10 14:19:02

标签: php arrays unset

有没有办法从数组中删除元素?它是存储物品ID的购物车。我想制作删除功能。

例如 - cart_handler.php?delete = 2687

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

1 个答案:

答案 0 :(得分:1)

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

这样的事情:

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

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

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

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

如果您想在此之后重新建立密钥索引,您可以执行以下操作:

$data = array_values($data);

以上操作修复了数组键索引,当您取消设置元素时,它将从数组中删除,但所有键都将保持其当前索引。因此数组索引可能会像这样进展:0, 1, 3, 4。如果您使用上述内容重新定位数组,它们将自然再次进展:0, 1, 2, 3

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