如何在 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()` 之间的区别。