WithCoderWithCoderWithCoder

PHP数组函数 array_splice (去掉数组中的某一部分并用其它值取代)

    在PHP中,数组函数 array_splice () 用于去掉数组中的某一部分并用其它值取代。

    函数语法:

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

    函数参数说明:

参数描述
input必需。规定数组。
offset必需。数值。规定删除元素的开始位置。 0 = 第一个元素。 如果该值设置为正数,则从数组中该值指定的偏移量开始移除。如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。 -2 意味着从数组的倒数第二个元素开始。
length可选。数值。规定被移除的元素个数,也是被返回数组的长度。 如果该值设置为正数,则移除该数量的元素。如果该值设置为负数,则移除从 offset 到数组末端倒数 length 为止中间所有的元素。如果该值未设置,则移除从 offset 参数设置的位置开始直到数组末端的所有元素。
replacement可选。规定带有要插入原始数组中元素的数组。如果只有一个元素,则可以设置为字符串,不需要设置为数组。

    array_splice() 函数把 input 数组中由 offset 和 length 指定的数组元素去掉并返回。如果提供了 replacement 参数,则用其中的元素取代。

    注意:

        1. input 中的数字键名不被保留。

        2. 如果 replacement 不是数组,会被 类型转换 成数组 (例如: (array) $replacement)。 当传入的 replacement 是个对象或者 NULL,会导致未知的行为出现。

        3. 如果 offset 和 length 的组合结果是不会移除任何元素,则 replacement 数组中的元素将被插入到 offset 指定的位置。

    举例1,去掉数组中的某一部分并用其它值取代   

<?php

// 定义数组
$arr = ['a', 'b', 'c', 'd'];

// 删除并替换指定位置的元素
$res = array_splice($arr, 1, 2, ['1', '2']);

var_dump($res);
echo '<br>';
var_dump($arr);

    以上代码输出如下:

array (size=2)
  0 => string 'b' (length=1)
  1 => string 'c' (length=1)
  
array (size=4)
  0 => string 'a' (length=1)
  1 => string '1' (length=1)
  2 => string '2' (length=1)
  3 => string 'd' (length=1)

    举例2,在数组中插入指定值   

<?php

// 定义数组
$arr = ['a', 'b', 'c', 'd'];

// 在数组中插入指定值
$res = array_splice($arr, 1, 0, ['1', '2']);

var_dump($res);
echo '<br>';
var_dump($arr);

    以上代码输出如下:

array (size=0)
  empty
  
array (size=6)
  0 => string 'a' (length=1)
  1 => string '1' (length=1)
  2 => string '2' (length=1)
  3 => string 'b' (length=1)
  4 => string 'c' (length=1)
  5 => string 'd' (length=1)


欢迎分享交流,转载请注明出处:WithCoder » PHP数组函数 array_splice (去掉数组中的某一部分并用其它值取代)