如何在 PHP 中去除数组前两项?
1. 方法一:使用 array_slice 函数
可以使用 PHP 内置函数 array_slice,它可以从数组中返回一个指定长度的片段(即一个新的数组),从而实现删除数组前面的项。
注意:如果原来数组中的键是字符串,使用 array_slice 会保留原来的键,但是如果键是数字,将会以数字序列重新索引。
下面是使用 array_slice 函数来去除前两项的示例代码:
$array = array('a', 'b', 'c', 'd', 'e');
$result = array_slice($array, 2, null, true); // 返回索引从 2 开始的新数组,保留原来的键
print_r($result); // Array ( [2] => c [3] => d [4] => e )
其中,array_slice 函数第一个参数是要操作的数组,第二个参数是从哪个索引开始返回,第三个参数是返回长度(如果传 null,则返回到数组末尾),第四个参数是一个布尔值,指定是否保留原来的键。
2. 方法二:使用 array_splice 函数
除了 array_slice,PHP 还提供了一个叫做 array_splice 的函数,它可以直接修改原数组,删掉前面的项,从而避免了创建一个新数组的开销。
下面是使用 array_splice 函数来去除前两项的示例代码:
$array = array('a', 'b', 'c', 'd', 'e');
array_splice($array, 0, 2); // 删除前两个元素
print_r($array); // Array ( [2] => c [3] => d [4] => e )
其中,array_splice 函数第一个参数是要操作的数组,第二个参数是从哪个索引开始删除,第三个参数是要删除的长度(如果传 null,则从开始位置一直删除到数组尾部),第四个参数是插入的数组,这里我们不需要插入,所以不用传入。
3. 注意事项
在使用上面两个函数时,需要注意以下几点:
- 如果数组中的元素都是唯一标识的,那么需要注意是否会因为删除前面的元素而产生重复的键。
- 如果要完全删除数组前面的元素,可以使用 unset 函数,但要注意该函数可能会改变原来的键。
- 如果需要删除的元素数量超过数组的长度,array_slice 函数会返回一个空数组,而 array_splice 函数会删除整个数组中的所有元素。