数组函数

PHP array_splice() 函数

主题:PHP 数组参考上一页|下一页

说明

array_splice() 函数删除数组的一部分或切片,并将其替换为另一个数组的元素。 如果未指定替换数组,则此函数仅删除元素。

下表总结了该函数的技术细节。

返回值: 返回一个由提取的元素组成的数组。
版本: PHP 4+

提示: array_splice() 函数使用与 array_slice() 相同的规则选择元素序列。 但是,与 array_slice() 不同的是,array_splice() 函数通过删除或添加元素来修改原始数组,而不是简单地返回数组的切片。


语法

array_splice() 函数的基本语法如下:

array_splice(array, offset, length, replacement)

下面的例子展示了 array_splice() 函数的作用。

<?php
// 样本数组
$input = array("apple", "banana", "orange", "mango", "papaya", "kiwi");
$replacement = array("lemon", "carrot", "corn");

// 执行数组拼接
$result = array_splice($input, 2, 3, $replacement);
print_r($result);
print_r($input);
?>

替换数组中的原始键在拼接到输入数组时不会被保留。 它们被数字键取代。 让我们尝试一个示例,看看它是如何工作的:

<?php
// 样本数组
$input = array("a"=>"apple", "b"=>"ball", "c"=>"cat", "d"=>"dog");
$replacement = array("x"=>"xylophone", "y"=>"yacht");

// 执行数组拼接
$result = array_splice($input, 1, 2, $replacement);
print_r($result);
print_r($input);
?>

参数

array_splice() 函数接受以下参数。

参数 说明
array 必填。 指定要处理的数组。
offset

必填。 指定切片的起点(0 表示第一个元素)。

如果您指定一个负数,则起点将是最后一个元素之前的那么多元素,例如 -2 表示起点将是数组的倒数第二个元素。
length

可选。 指定要提取的元素数。

如果它的值设置为负数,那么切片将从数组末尾停止那么多元素。 如果不指定length参数,则返回数组起点到终点的所有元素。
replacement 可选。 指定替换数组。 如果已指定,则移除的元素将替换为此数组中的元素。

提示: 如果替换只是一个元素,则无需在其周围放置 array() 或方括号,因为 PHP 会自动将其类型转换为数组(即 (array) $替换)。

注意: 如果 偏移量长度 参数的值不会删除任何内容,则将替换数组中的元素插入 偏移量 指定的位置。


更多示例

这里有更多示例显示 array_splice() 函数的基本工作原理:

下面的例子展示了如果没有指定替换数组会发生什么。

<?php
// 样本数组
$input = array("red", "green", "blue", "pink", "yellow", "black");

// 执行数组拼接
$result = array_splice($input, 3, 2);
print_r($result);
print_r($input);
?>

下面的例子展示了如果 offsetlength 参数都是负数会发生什么。

<?php
// 样本数组
$input = array("red", "green", "blue", "pink", "yellow", "black");

// 执行数组拼接
$result = array_splice($input, -4, -1);
print_r($result);
print_r($input);
?>

以下示例显示了如果省略或未指定 length 参数会发生什么。

<?php
// 样本数组
$input = array("red", "green", "blue", "pink", "yellow", "black");

// 执行数组拼接
$result = array_splice($input, 2);
print_r($result);
print_r($input);
?>

以下示例显示了如果 length 参数值设置为 0 会发生什么。

<?php
// 样本数组
$input = array("red", "green", "blue", "pink", "yellow", "black");
$replacement = array("purple", "maroon", "violet");

// 执行数组拼接
$result = array_splice($input, 2, 0, $replacement);
print_r($result);
print_r($input);
?>
Advertisements