本文介绍使用 array_splice() 配合布尔切换逻辑,将一维数组按 3、2、3、2… 的规律分块,生成嵌套二维数组,适用于分页展示、布局分组等场景。
在 PHP 开发中,有时需要对数组进行非均匀分块——例如按「3 个元素 → 2 个元素 → 3 个元素 → 2 个元素」的交替模式切分。这不同于 array_chunk() 的固定长度分块,需手动控制每次截取数量。
核心思路是:利用 array_splice($array, 0, $length) 原地移除并返回指定长度的前缀子数组,再通过布尔标志 $step 动态切换长度(true 时取 3,false
时取 2),循环直至原数组为空。
以下是完整可运行示例:
输出结果:
Array
(
[0] => Array ( [0] => 1 [1] => 2 [2] => 3 )
[1] => Array ( [0] => 4 [1] => 5 )
[2] => Array ( [0] => 6 [1] => 7 [2] => 8 )
[3] => Array ( [0] => 9 [1] => 10 )
)✅ 关键优势:
⚠️ 注意事项:
此方法兼顾可读性与实用性,是处理周期性变长分块任务的推荐方案。