array_splice — 把数组中的一部分去掉并用其它值取代

基本语法:

array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement ]] )

把 input 数组中由 offset 和 length 指定的单元去掉,如果提供了 replacement 参数,则用其中的单元取代。 

array_splice() 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。

提示:如果函数没有移除任何元素(length=0),则将从offset参数的位置插入被替换数组。

注意 input 中的数字键名不被保留。

参数介绍:

参数 描述
input 必需。输入的数组。
offset

必需。数值。规定删除元素的开始位置。

  • 0 = 第一个元素。
  • 如果该值设置为正数,则从数组中该值指定的偏移量开始移除。
  • 如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。
  • -2 意味着从数组的倒数第二个元素开始。

如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除。如果 offset 为负,则从 input 末尾倒数该值指定的偏移量开始移除。 

length

可选。数值。规定被移除的元素个数,也是被返回数组的长度。

  • 如果该值设置为正数,则移除该数量的元素。
  • 如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。
  • 如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。

如果省略 length,则移除数组中从 offset 到结尾的所有部分。如果指定了 length 并且为正值,则移除这么多单元。如果指定了 length 并且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的单元。小窍门:当给出了 replacement 时要移除从 offset 到数组末尾所有单元时,用 count($input) 作为 length。 

replacement

可选。规定带有要插入原始数组中元素的数组。

如果给出了 replacement 数组,则被移除的单元被此数组中的单元替代。

如果 offset 和 length 的组合结果是不会移除任何值,则 replacement 数组中的单元将被插入到 offset 指定的位置。 注意替换数组中的键名不保留。

如果用来替换 replacement 只有一个单元,那么不需要给它加上 array(),除非该单元本身就是一个数组、一个对象或者 NULL 。

 

返回值

返回一个包含有被移除单元的数组。

实例:

<?php
$input  = array( \"red\" ,  \"green\" ,  \"blue\" ,  \"yellow\" );
 array_splice ( $input ,  2 );
 // 现在$input为 array(\"red\", \"green\")

 $input  = array( \"red\" ,  \"green\" ,  \"blue\" ,  \"yellow\" );
 array_splice ( $input ,  1 , - 1 );
 // 现在$input为 array(\"red\", \"yellow\")

 $input  = array( \"red\" ,  \"green\" ,  \"blue\" ,  \"yellow\" );
 array_splice ( $input ,  1 ,  count ( $input ),  \"orange\" );
 // 现在$input为 array(\"red\", \"orange\")

 $input  = array( \"red\" ,  \"green\" ,  \"blue\" ,  \"yellow\" );
 array_splice ( $input , - 1 ,  1 , array( \"black\" ,  \"maroon\" ));
 // 现在$input为 array(\"red\", \"green\",
//          \"blue\", \"black\", \"maroon\")

 $input  = array( \"red\" ,  \"green\" ,  \"blue\" ,  \"yellow\" );
 array_splice ( $input ,  3 ,  0 ,  \"purple\" );
 // 现在$input为 array(\"red\", \"green\",
//          \"blue\", \"purple\", \"yellow\");
 ?> 

在线运行

收藏 打印