(PECL ds >= 1.0.0)
Ds\Map::slice — 傳回由起始索引和長度定義的映射子集
index
範圍起始的索引。
如果為正數,範圍將從映射中的該索引開始。如果為負數,範圍將從末尾開始算起。
length
如果給定長度且為正數,則結果映射最多包含這麼多個鍵值對。如果給定長度且為負數,則範圍將從末尾截斷這麼多個鍵值對。如果長度導致溢位,則只會包含到映射末尾的鍵值對。如果未提供長度,則結果映射將包含索引和映射末尾之間的所有鍵值對。
由起始索引和長度定義的映射子集。
範例 #1 Ds\Map::slice() 範例
<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5]);
// 從索引 2 開始切片
print_r($map->slice(2)->toArray());
// 從索引 1 開始切片,長度為 3
print_r($map->slice(1, 3)->toArray());
// 從索引 1 開始切片
print_r($map->slice(1)->toArray());
// 從倒數第 2 個開始切片
print_r($map->slice(-2)->toArray());
// 從索引 1 切片到倒數第 1 個
print_r($map->slice(1, -1)->toArray());
?>
上述範例將輸出類似以下的內容
Array ( [c] => 3 [d] => 4 [e] => 5 ) Array ( [b] => 2 [c] => 3 [d] => 4 ) Array ( [b] => 2 [c] => 3 [d] => 4 [e] => 5 ) Array ( [d] => 4 [e] => 5 ) Array ( [b] => 2 [c] => 3 [d] => 4 )