如何从php中的数组中获取顺序数字

时间:2016-06-20 06:17:13

标签: php loops sequence

我有一个阵列说 arr[]={1,2,3,4,6,7,8,10,11,12,13,14,16,17,18} 我需要3个块,每个块包含3个元素。[3将是动态的] 输出应为

block[1]={1,2,3}
block[2]={6,7,8}
block[3]={10,11,12}

php中的循环脚本是什么

4 个答案:

答案 0 :(得分:1)

您可以使用array_chunk

$arr = range(1, 18);
$result = array_chunk($arr, 3);
print_r($result);

答案 1 :(得分:1)

使用 array_chunk()

$arr=[1,2,3,4,6,7,8,10,11,12,13,14,16,17,18];
unset($arr[3]); // unset key 4
$chunks = array_chunk($arr, 3,true);// pass true here
print_r($chunks);

答案 2 :(得分:0)

$arr=[1,2,3,4,6,7,8,10,11,12,13,14,16,17,18];
$block = array_chunk($arr,3);
print_r($block);

<强>输出

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 6
            [2] => 7
        )

    [2] => Array
        (
            [0] => 8
            [1] => 10
            [2] => 11
        )

    [3] => Array
        (
            [0] => 12
            [1] => 13
            [2] => 14
        )

    [4] => Array
        (
            [0] => 16
            [1] => 17
            [2] => 18
        )

)
$block[] = array_slice($arr, 0, 3, true);
$block[] = array_slice($arr, 4, 3, true);
$block[] = array_slice($arr, 7, 3, true);
print_r($block);

<强>输出

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [4] => 6
            [5] => 7
            [6] => 8
        )

    [2] => Array
        (
            [7] => 10
            [8] => 11
            [9] => 12
        )

)
  

参考:Demo

答案 3 :(得分:0)

您只需使用一行代码就可以完成。

$array = array_chunk(array_slice($array, 0, 9), 3);

array_slice用于切割原始数组中9个键值对的一部分。

array_chunk然后将其分成3个块。

订单不正确?

如果您的数组顺序不正确,则上述代码将无效。要解决此问题,首先需要sort您的数组。这可以按如下方式完成:

$array = sort($array);

上面的函数会将数组从低到高排序。

进行测试运行会让我回复:

array(3) {
  [0]=>
  array(3) {
    [0]=>
    int(1)
    [1]=>
    int(2)
    [2]=>
    int(3)
  }
  [1]=>
  array(3) {
    [0]=>
    int(4)
    [1]=>
    int(5)
    [2]=>
    int(6)
  }
  [2]=>
  array(3) {
    [0]=>
    int(7)
    [1]=>
    int(8)
    [2]=>
    int(9)
  }
}

资源