PHP源码阅读笔记二十一:array_slice函数
array_slice
(PHP 4, PHP 5)
array_slice — 从数组中取出一段
说明
array array_slice ( array array, int offset [, int length [, bool preserve_keys]] )
array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。
如果 offset 非负,则序列将从 array 中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。
如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始一直到 array 的末端。
这一段说明在程序中的实现非常简单,如下:
1
2
3
| while (pos < offset + length && ...) {
.......
} |
注意 array_slice() 默认将重置数组的键。自 PHP 5.0.2 起,可以通过将 preserve_keys 设为 TRUE 来改变此行为。
这里所说的重置数组的键,是指重置数组中的数字键。
如下所示PHP代码:
1
2
3
4
5
6
7
| <?PHP
$arr = array(2 => 2, 1 => 1, 's' => 's', '0' => 'ddd');
var_dump(array_slice($arr, 0));
die();
/*
此段程序会输出:array(4) { [0]=> int(2) [1]=> int(1) ["s"]=> string(1) "s" [2]=> string(3) "ddd" }
*/ |
在源码中我们可以看到:
2026年一月
2025年十二月
2025年十一月
2025年十月
2025年九月
2025年八月
2025年七月
2025年六月
2025年五月
2025年四月
2025年三月
2025年二月
2025年一月
2024年十二月
2024年十一月
2024年十月
2024年九月
2024年八月
2024年七月
2024年六月
2024年五月
2024年四月
2024年三月
2024年二月
2024年一月
2023年十二月
2023年五月
2023年三月
2023年二月
2023年一月
2022年十二月
2022年十一月
2022年十月
2022年九月
2022年八月
2022年七月
2022年六月
2022年五月
2022年四月
2022年三月
2022年二月
2022年一月
2021年十二月
2021年十一月
2018年四月
2017年十一月
2016年十一月
2016年九月
2015年五月
2015年四月
2014年八月
2014年五月
2014年三月
2014年二月
2014年一月
2013年十二月
2013年十月
2013年九月
2013年七月
2013年五月
2013年四月
2013年三月
2013年二月
2013年一月
2012年十二月
2012年十一月
2012年十月
2012年八月
2012年七月
2012年六月
2012年五月
2012年四月
2012年三月
2012年二月
2012年一月
2011年十二月
2011年十一月
2011年十月
2011年九月
2011年八月
2011年七月
2011年六月
2011年五月
2011年四月
2011年三月
2011年二月
2011年一月
2010年十二月
2010年十一月
2010年十月
2010年九月
2010年八月
2010年七月
2010年六月
2010年五月
2010年四月
2010年三月
2010年二月
2010年一月
2009年十二月
2009年十一月
2009年十月
2009年九月
2009年八月