將矩陣做分割取部分元素時,常常會用到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")來做一些使用範例。
保留矩陣中的字母元素。
$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
)
用["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
)
用["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傳送門來練習。
Laravel8+Vue3+Bootstrap5實作TODO List ep09:安裝bootstrap5並美化todo list畫面
Laravel8+Vue3+Bootstrap5實作TODO List ep07:安裝vue3跟基本設定
Laravel8+Vue3+Bootstrap5實作TODO List ep08:用vue重新製作todo list畫面
Laravel8+Vue3+Bootstrap5實作TODO List ep06:初步認識Web Route
Laravel8+Vue3+Bootstrap5實作TODO List ep05:製作新增、更新、刪除待辦事項的API