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参数验证

1
2
3
4
5
6
7
8
9
10
11
<?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));
?>

 

 

输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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

1
2
3
4
5
<?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));
?>

 

输出:

1
2
3
4
5
6
7
8
9
10
11
12
Array
(
    [a] => apple
    [b] => banana
    [0] => pear
)
Array
(
    [a] => apple
    [b] => banana
    [42] => pear
)

 

posted on   1450811640  阅读(92)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示