(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 )