PHP array_splice() 函数
说明
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);
?>
下面的例子展示了如果 offset 和 length 参数都是负数会发生什么。
<?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