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

Table of Contents

Table of Contents

array_slice

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

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

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

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

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

基本語法

array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ) : array

將矩陣依照指定的位置與大小將部分元素取出並返回。

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

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

$preserve_keys可以設定是否保留鍵值,若不保留鍵值則新的鍵值為數字。默認是重新排序並使用數字索引。


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

Example 1

取出矩陣中的數字元素。 

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

print_r(array_slice($input, 6));

Output:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Example 2

取出矩陣中的字母元素。

這裡展示兩種方式。

  • array_slice($input, 0, 5):從開頭推算抓取5個元素。
  • array_slice($input, 0, -4):從尾端推算到4個元素。
$input = array("H", "e", "l", "l", "o", ",", "1", "2", "3");

print_r(array_slice($input, 0, 5));
print_r(array_slice($input, 0, -4));

Output:

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
)
Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
)

Example 3

取出矩陣中的「,」符號。

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

Output:

Array
(
    [0] => ,
)

試試看

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


相關函數