array_splice

跟array_slice函数长得很像的一个函数,array_splice,对比记忆加深印象!

一、定义

  1. 功能: 去掉数组中的某一部分并用其它值取代
  2. 用法:array_splice(array &$input, int $offset[, int $length = count($input)[, mixed $replacement = array()]]):array
  3. 说明: 把input数组中由offsetlength指定的单元去掉,如果提供了replacement参数,则用其中的单元取代。
    • 注意input中的数字键名不被保留
    • input传引用方式
  4. 参数
    • input:输入的数组,传引用。
    • offset:
      • 如果offset为正,则从input数组中该值指定的偏移量开始移除。
      • 如果offset为负,则从input末尾倒数该值指定的偏移量开始移除。
    • length:
    • 如果省略length,则移除数组中从offset到结尾的所有部分。
    • 如果指定了length并且为正值,则移除这么多单元。
    • 如果指定了length并且为负值,则移除从offset到数组末尾倒数length为止中间所有的单元。
    • 如果设置了length为零,不会移除单元。
    • 小窍门:当给出了replacement时要移除从offset到数组末尾所有单元时,用count($input)作为length
    • replacement
    • 如果给出了replacement数组,则被移除的单元被此数组中的单元替代。
    • 如果offsetlength的组合结果是不会移除任何值,则replacement数组中的单元将被插入到offset指定的位置。
    • 注意替换数组中的键名不保留。
    • 如果用来替换replacement只有一个单元,那么不需要给它加上 array(),除非该单元本身就是一个数组、一个对象或者 NULL。

二、demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2); // $input is now array("red", "green")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1); // $input is now array("red", "yellow")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange"); // $input is now array("red", "orange")

$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon")); // $input is now array("red", "green","blue", "black", "maroon")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple"); // $input is now array("red", "green","blue", "purple", "yellow");

$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 1, "purple"); // $input is now array("red", "green","blue", "purple");