从数组的开头移位/切片N个元素

Pav*_* S. 1 php arrays slice

有一个包含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

Sha*_*ran 5

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)