array_slice

(PHP 4, PHP 5, PHP 7, PHP 8)

array_slice從數(shù)組中取出一段

說(shuō)明

array_slice(
    array $array,
    int $offset,
    ?int $length = null,
    bool $preserve_keys = false
): array

array_slice() 返回根據(jù) offsetlength 參數(shù)所指定的 array 數(shù)組中的一段序列。

參數(shù)

array

輸入的數(shù)組。

offset

如果 offset 非負(fù),則序列將從 array 中的此偏移量開始。

如果 offset 為負(fù),則序列將從 array 中距離末端這么遠(yuǎn)的地方開始。

注意:

參數(shù) offset 標(biāo)識(shí)的是數(shù)組中的位置,而不是鍵。

length

如果給出了 length 并且為正,則序列中將具有這么多的單元。

如果 array 比 length 要短,只會(huì)保留有效的數(shù)組單元。

如果給出了 length 并且為負(fù),則序列將終止在距離數(shù)組末端這么遠(yuǎn)的地方。

如果省略,則序列將從 offset 開始一直到 array 的末端。

preserve_keys

注意:

注意 array_slice() 默認(rèn)會(huì)重新排序并重置數(shù)組的數(shù)字索引。你可以通過(guò)將 preserve_keys 設(shè)為 true 來(lái)改變此行為。 無(wú)論本參數(shù)如何設(shè)置,都會(huì)保留字符串的鍵。

返回值

返回其中一段。 如果 offset 參數(shù)大于 array 尺寸,就會(huì)返回空的 array。

范例

示例 #1 array_slice() 例子

<?php
$input 
= array("a""b""c""d""e");

$output array_slice($input2);      // 返回 "c", "d" 和 "e"
$output array_slice($input, -21);  // 返回 "d"
$output array_slice($input03);   // 返回 "a", "b" 和 "c"

// 注意數(shù)組中 key 的不同
print_r(array_slice($input2, -1));
print_r(array_slice($input2, -1true));
?>

以上例程會(huì)輸出:

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

示例 #2 array_slice() 于索引從 1 開始的 array

<?php
$input 
= array(=> "a""b""c""d""e");
print_r(array_slice($input12));
?>

以上例程會(huì)輸出:

Array
(
    [0] => b
    [1] => c
)

示例 #3 array_slice() 與混合類型鍵的 array

<?php
$ar 
= array('a'=>'apple''b'=>'banana''42'=>'pear''d'=>'orange');
print_r(array_slice($ar03));
print_r(array_slice($ar03true));
?>

以上例程會(huì)輸出:

Array
(
    [a] => apple
    [b] => banana
    [0] => pear
)
Array
(
    [a] => apple
    [b] => banana
    [42] => pear
)

參見

  • array_splice() - 去掉數(shù)組中的某一部分并用其它值取代
  • unset() - 釋放給定的變量
  • array_chunk() - 將一個(gè)數(shù)組分割成多個(gè)