

新闻资讯
技术学院array_splice()可移除数组元素并重置数字索引,通过offset和length参数指定起始位置和数量,支持负数从末尾操作,会修改原数组并返回被删除元素。在 PHP 中,array_splice() 是一个非常灵活的函数,不仅可以用来移除数组中的元素,还能同时替换或插入新元素。当我们只想用它来移除元素时,只需要正确设置参数即可。
array_splice(array &$input, int $offset, int|null $length = null, mixed $replacement = [])
其中用于移除元素的关键参数是:如果想从第2个元素开始移除2个元素:
$arr = ['a', 'b', 'c', 'd', 'e']; array_splice($arr, 1, 2); // 结果:$arr 变为 ['a', 'd', 'e']
使用负数 offset 可以从数组末尾开始计算位置:
$arr = ['a', 'b', 'c', 'd', 'e']; array_splice($arr, -2, 2); // 移除最后两个元素,结果:['a', 'b', 'c']
array_splice() 会**重置数组的数字索引**,这是它与 unset() 的主要区别之一。例如:
$arr = [10, 20, 30, 40]; array_splice($arr, 1, 1); // 结果是 [10, 30, 40],索引为 0,1,2(不是 0,2,3)如果你需要保持原有键名(尤其是关联数组),建议使用 unset() 或结合 array_diff() 处理。
由于第四个参数 $replacement 默认为空数组,所以移除时无需传入任何值,直接忽略即可:
// 移除前两个元素 array_splice($a基本上就这些。掌握 offset 和 length 的用法,就能灵活控制要移除的元素范围。注意它改变的是原数组,并返回被删除的元素。rr, 0, 2);