Avatar ·

如何在 PHP 中正确删除数组元素并重新索引键?unset() 的问题

大家好!我是 PHP 新手,在删除数组元素时遇到了问题。 我有一个用户名字的数组: ```php $users = ['安娜', '伊万', '玛丽亚', '彼得']; ``` 我需要删除第二个元素(伊万)。我了解到可以使用 `unset()` 函数,于是写了这样的代码: ```php unset($users[1]); print_r($users); ``` 但结果让我非常惊讶!我期望得到一个有三个元素(键 0, 1, 2)的数组,却得到了: ``` Array ( [0] => 安娜 [2] => 玛丽亚 [3] => 彼得 ) ``` 键变得不连续:0, 2, 3。当尝试用 `for` 循环基于 `count($users)` 迭代时,我会跳过键为 2 的元素。我还尝试按值而不是按键删除元素——例如,删除所有名为“玛丽亚”的用户。如何正确实现? 我需要: 1. 简单删除元素,使数组保持连续(键 0,1,2)。 2. 删除所有具有特定值的元素。 3. 理解 `unset()` 和 `array_splice()` 之间的区别。