PHP 中 array_slice 該如何使用
array_slice()
簡單來說就是陣列分割 (切片),可以給四個參數,第四個參數預設值是 false
(重置 key 值)。
<?php
array_slice(
$array, // 陣列變數
$whereToStart, // 從哪裡開始
$howMany, // 要娶幾個值
$keepKey // 是否要保留原來的 key 值
)
假設今天有一個陣列。
$array = ['a', 'b', 'c', 'd'];
我們要從陣列中 'b'
開始,取 3 個值,則陣列切片應該要這樣寫。
array_slice($array, 1, 3);
要注意的是第二個參數,跟陣列一樣,都是從 0 開始數,但是這個 0 不代表陣列的 key 值,不論陣列的 key 值從哪裡開始,要從陣列的第 n 個數開始取值,第二個參數就是設定 n - 1。
舉例來說,原本的 $array
,其 key 值與 value 值的對應是這樣的。
$array[0] = 'a';
$array[1] = 'b';
$array[2] = 'c';
$array[3] = 'd';
現在將陣列中的第一個值刪除。
unset($array[0]);
然後跟剛剛一樣從 'b'
開始,取 3 個值,則陣列切片就要改成這樣寫。
array_slice($array, 0, 3);
第二個參數 0 代表從陣列的第一個值開始取,即使現在 'b'
的 key 值為 1 ,但因為他是此陣列的第一個值,所以第二個參數要給的是 0 而非 1。