Php/docs/function.array-slice
array_slice
(PHP 4, PHP 5, PHP 7)
array_slice — 从数组中取出一段
说明
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中距离末端这么远的地方开始。Note:
参数
offset标识的是数组中的位置,而不是键。length如果给出了
length并且为正,则序列中将具有这么多的单元。如果 array 比
length要短,只会保留有效的数组单元。如果给出了
length并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从
offset开始一直到array的末端。preserve_keysNote:
注意 array_slice() 默认会重新排序并重置数组的数字索引。你可以通过将
preserve_keys设为true来改变此行为。 无论本参数如何设置,都会保留字符串的键。
返回值
返回其中一段。 如果 offset 参数大于 array 尺寸,就会返回空的 array。
范例
Example #1 array_slice() 例子
<?php$input = array("a", "b", "c", "d", "e");$output = array_slice($input, 2); // returns "c", "d", and "e"$output = array_slice($input, -2, 1); // returns "d"$output = array_slice($input, 0, 3); // returns "a", "b", and "c"// note the differences in the array keysprint_r(array_slice($input, 2, -1));print_r(array_slice($input, 2, -1, true));?>
以上例程会输出:
Array
(
[0] => c
[1] => d
)
Array
(
[2] => c
[3] => d
)
Example #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
)
Example #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
)