PHP提供五种数组截取方法:一用array_slice()提取连续子数组;二用array_splice()截取并修改原数组;三用array_keys()与array_intersect_key()按键名提取非连续片段;四用array_filter()按条件动态筛选;五用foreach手动控制边界。

一、使用 array_slice() 提取连续子数组
array_slice() 是 PHP 中专用于从数组中提取连续片段的内置函数,它不修改原数组,而是返回新数组,支持正向和负向偏移量以及长度控制。
1、确定起始位置:传入第二个参数表示开始截取的索引,0 表示从第一个元素开始,负数表示从末尾倒数。
2、设定截取长度:第三个参数指定要提取的元素个数,省略时默认截取到末尾;若为负数,则表示排除末尾指定数量的元素。
3、保留键名控制:第四个参数为布尔值,设为 true 可保留原始键名,false(默认)则重置为数字索引。
立即学习“PHP免费学习笔记(深入)”;
二、利用 array_splice() 截取并可选移除片段
array_splice() 不仅能提取数组片段,还会直接修改原数组,适用于需要在提取的同时删除对应部分的场景,返回被移除的子数组。
1、指定起始偏移:第二个参数为起始索引,支持负数,含义与 array_slice() 一致。
2、定义替换长度:第三个参数决定要移除多少个元素,若为 0 则不删除仅插入(此时需提供第四个参数)。
3、不提供替换内容:调用时仅传入前三个参数,即可实现“提取并删除”效果,返回值即为被截取的片段。
三、通过 array_keys() 与 array_intersect_key() 按键名提取非连续片段
当需依据特定键名集合提取不连续的元素时,可先用 array_keys() 获取目标键名,再用 array_intersect_key() 筛选匹配键的值,保持原始键名和顺序。
1、构造键名白名单:将所需键名存入一个索引数组,例如 ['name', 'email', 'status']。
还木有评论哦,快来抢沙发吧~