array_splice用于删除、插入或替换数组元素并重置索引。1. 删除:指定起始位置和长度;2. 插入:设长度为0并传入新元素;3. 替换:删除同时插入新值;4. 返回被删元素,原数组被修改。
在 PHP 中,array_splice 是一个非常灵活的函数,用于从数组中删除元素、插入新元素,甚至同时进行删除和插入操作。它还能自
动重建数组的索引(包括数字键和关联键),特别适合需要在指定位置修改数组内容的场景。
使用 array_splice 可以从指定位置开始删除一定数量的元素。
示例:删除第2个起的2个元素
$arr = ['a', 'b', 'c', 'd', 'e']; array_splice($arr, 1, 2); // 结果:['a', 'd', 'e']
可以在不删除任何元素的情况下,向数组的指定位置插入新元素。
示例:在索引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 更直接。掌握它能让你更高效地处理数组的局部修改。