有一个包含K个元素的数组.从这个数组中获取N <K项块的最佳方法是什么?
输入示例:
$x = [1,2,3,4,5,6,7,8,9,10]; // K = 10
Run Code Online (Sandbox Code Playgroud)
当N = 3时,期望的结果;
$x1 = [1,2,3];
$x2 = [4,5,6];
$x3 = [7,8,9];
$x4 = [10];
Run Code Online (Sandbox Code Playgroud)
显然,不需要将结果存储在变量中.只要可以通过foreach(或任何其他迭代逻辑)处理它,它应该没问题.
问题array_slice是它不会从数组的开头删除N切片.问题array_shift是它不支持一次移动多个项目.有没有比迭代更优雅的东西array_shift?
array_chunk 是你需要的.
<?php
$x = [1,2,3,4,5,6,7,8,9,10];
print_r(array_chunk($x,3));
Run Code Online (Sandbox Code Playgroud)
输出:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 4
[1] => 5
[2] => 6
)
[2] => Array
(
[0] => 7
[1] => 8
[2] => 9
)
[3] => Array
(
[0] => 10
)
)
Run Code Online (Sandbox Code Playgroud)