array_splice用于删除、插入或替换数组元素并重置索引。1. 删除:指定起始位置和长度;2. 插入:设长度为0并传入新元素;3. 替换:删除同时插入新值;4. 返回被删元素,原数组被修改。

在 PHP 中,array_splice 是一个非常灵活的函数,用于从数组中删除元素、插入新元素,甚至同时进行删除和插入操作。它还能自动重建数组的索引(包括数字键和关联键),特别适合需要在指定位置修改数组内容的场景。
删除数组中的元素
使用 array_splice 可以从指定位置开始删除一定数量的元素。
- 语法:array_splice($array, $start, $length)
- $array:原数组
- $start:开始删除的位置(从0开始)
- $length:要删除的元素个数(可选,默认到末尾)
示例:删除第2个起的2个元素
$arr = ['a', 'b', 'c', 'd', 'e']; array_splice($arr, 1, 2); // 结果:['a', 'd', 'e']
在指定位置插入元素
可以在不删除任何元素的情况下,向数组的指定位置插入新元素。
立即学习“PHP免费学习笔记(深入)”;
- 将 $length 设为 0,第三个参数传入要插入的数组
示例:在索引2处插入新元素
$arr = ['a', 'b', 'd', 'e']; array_splice($arr, 2, 0, ['c']); // 结果:['a', 'b', 'c', 'd', 'e']
也可以插入多个元素:
array_splice($arr, 1, 0, ['x', 'y']); // 在索引1处插入 'x' 和 'y'
同时删除并插入元素
这是 array_splice 最强大的功能:用新元素替换旧元素。
示例:用新值替换中间两个元素
$arr = ['one', 'two', 'three', 'four']; array_splice($arr, 1, 2, ['2', '3']); // 结果:['one', '2', '3', 'four']
键名重建与返回值
array_splice 会自动重置数组的数字索引,无论是否删除元素。关联键也会被重新排序(但保留键名)。
- 该函数直接修改原数组
- 返回被删除的元素组成的数组
示例:获取被删除的元素
$arr = [10, 20, 30]; $removed = array_splice($arr, 1, 1); // $arr 变为 [10, 30] // $removed 为 [20]
注意:即使原始数组有字符串键,splice 后数字索引仍会被重新编号。
基本上就这些。array_splice 适合精确控制数组结构,特别是在需要“在中间插入”或“替换片段”时比 array_merge 或 unset 更直接。掌握它能让你更高效地处理数组的局部修改。











