PHP 新手教學 Array | array_splice的使用說明

Table of Contents

Table of Contents

array_splice

將矩陣做分割取部分元素時,常常會用到array_chunk, array_slice, array_splice這三種函數。

了解這三種函數的差別後,就可以依照需求使用適合的函數來達成目的。

簡單地說,三者的區分如下。

  • array_chunk: 按大小均分矩陣,所有矩陣元素都會被留下。
  • array_slice: 從矩陣中取出想要的元素。
  • array_splice: 替換矩陣中部分元素。

本文說明 PHP array_splice使用說明與範例。

基本語法

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

將矩陣依照指定的位置 $offset 與長度 $length ,將部分元素用 $replacement 取代,將被取代的元素返回。 注意:函數返回被替換掉的元素,且原矩陣$input將被變更

$offset是去除元素的起始位置。 若為正值,則從開頭往結尾方向起算位置。 若為負值,則從結尾開始往開頭方向起算位置。

$length為要去除的元素數量。 若為正值,則從$offset開始算$length個元素。 若為負值,則取出的元素會終止在尾端算起|$length|處,若超過或等於$offset則返回空矩陣。 若忽略設定$length,則返回$offset開始到結尾為止的元素。 若為0,則不移除元素。

$replacement可以設定一組元素來替換被移除的元素。 預設為空矩陣。 若沒有被取代的矩陣,則插入到 $offset 位置。


下面使用array("H", "e", "l", "l", "o", ",", "1", "2", "3")來做一些使用範例。

Example 1

保留矩陣中的字母元素。 

$input = array("H", "e", "l", "l", "o", ",", "1", "2", "3");

print_r(array_splice($input, 5));
print_r($input);

Output:

//被移除的元素
Array
(
    [0] => ,
    [1] => 1
    [2] => 2
    [3] => 3
)
//取代後的矩陣
Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
)


Example 2

用["a","b","c"]來取代矩陣中的數字元素。

$input = array("H", "e", "l", "l", "o", ",", "1", "2", "3");

print_r(array_splice($input, 6, count($input), array("a", "b", "c")));
print_r($input);

Output:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] => ,
    [6] => a
    [7] => b
    [8] => c
)

Example 3

用["a","b"]來取代矩陣中的["1", "2"]元素。

$input = array("H", "e", "l", "l", "o", ",", "1", "2", "3");

print_r(array_splice($input, 6, -1, array("a", "b")));
print_r($input);

Output:

Array
(
    [0] => 1
    [1] => 2
)
Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] => ,
    [6] => a
    [7] => b
    [8] => 3
)

試試看

想直接線上實作的話可以透過Example傳送門來練習。


相關函數