array_slice
(PHP 4, PHP 5, PHP 7, PHP 8)
array_slice — 從陣列中取出一段
說明
array
$array
,int
$offset
,?int
$length
= null
,bool
$preserve_keys
= false
): array
array_slice() 返回根據 offset
和
length
參數所指定的 array
陣列中的一段序列。
參數
-
array
-
輸入的陣列。
-
offset
-
如果
offset
非負,則序列將從array
中的此偏移量開始。如果
offset
為負,則序列將從array
中距離末端這麼遠的地方開始。注意:
參數
offset
標識的是陣列中的位置,而不是鍵。 -
length
-
如果給出了
length
並且為正,則序列中將具有這麼多的單元。如果 array 比
length
要短,只會保留有效的陣列單元。如果給出了
length
並且為負,則序列將終止在距離陣列末端這麼遠的地方。如果省略,則序列將從
offset
開始一直到array
的末端。 -
preserve_keys
-
注意:
注意 array_slice() 預設會重新排序並重置陣列的數字索引。你可以通過將
preserve_keys
設為true
來改變此行為。 無論本參數如何設定,都會保留字串的鍵。
返回值
返回其中一段。 如果 offset 參數大於 array 尺寸,就會返回空的 array。
範例
示例 #1 array_slice() 例子
<?php
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // 返回 "c", "d" 和 "e"
$output = array_slice($input, -2, 1); // 返回 "d"
$output = array_slice($input, 0, 3); // 返回 "a", "b" 和 "c"
// 注意陣列中 key 的不同
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>
以上例程會輸出:
Array ( [0] => c [1] => d ) Array ( [2] => c [3] => d )
示例 #2 array_slice() 于索引從 1 開始的 array
<?php
$input = array(1 => "a", "b", "c", "d", "e");
print_r(array_slice($input, 1, 2));
?>
以上例程會輸出:
Array ( [0] => b [1] => c )
示例 #3 array_slice() 與混合型別鍵的 array
<?php
$ar = array('a'=>'apple', 'b'=>'banana', '42'=>'pear', 'd'=>'orange');
print_r(array_slice($ar, 0, 3));
print_r(array_slice($ar, 0, 3, true));
?>
以上例程會輸出:
Array ( [a] => apple [b] => banana [0] => pear ) Array ( [a] => apple [b] => banana [42] => pear )