php数组(四) array_slice
array_slice — 从数组中取出一段
参数介绍:array_slice(
array $array,
int $offset,
int $length = null,
bool $preserve_keys = false
): array
offset参数:
- 如果
offset非负,则序列将从array中的此偏移量开始(下标从0开始,0,1,2)。 - 如果
offset为负,则序列将从array中距离末端这么远的地方开始(下标从1开始,-1, -2)。
注意:
- 参数
offset标识的是数组中的位置,而不是键。
length参数:
- 如果给出了
length并且为正,则序列中将具有这么多的单元。 - 如果 array 比
length要短,只会保留有效的数组单元。 - 如果给出了
length并且为负,则序列将终止在距离数组末端这么远的地方。 - 如果省略,则序列将从
offset开始一直到array的末端。
preserve_keys
- array_slice() 默认会重新排序并重置数组的数字索引。你可以通过将
preserve_keys设为true来改变此行为。 无论本参数如何设置,都会保留字符串的键。
1、offset与length参数验证
<?php
$input = array("a", "b", "c", "d", "e");
print_r(array_slice($input, 2)); // returns "c", "d", and "e"
print_r(array_slice($input, -2, 1)); // returns "d"
print_r(array_slice($input, 0, 3)); // returns "a", "b", and "c"
// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>
输出:
Array
(
[0] => c
[1] => d
[2] => e
)
Array
(
[0] => d
)
Array
(
[0] => a
[1] => b
[2] => c
)
Array
(
[0] => c
[1] => d
)
Array
(
[2] => c
[3] => d
)
2、如果不需要数组索引重排,则设置preserve_keys为true
<?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
)
posted on 2021-08-02 21:02 1450811640 阅读(99) 评论(0) 收藏 举报
浙公网安备 33010602011771号