如何将数组的每个3个元素放入另一个数组中,并不断重复

时间:2013-07-19 09:55:03

标签: php

我有一个$ array = array(),它有很多元素。我想要一个$ parent_array,其中$ parent_array的每个元素都是一个数组,它连续包含来自$ array的3个元素。

所以我想要完成的具体例子

$array = ('a','b','c','d','e','f','g','h','i','j');
$parent_array = (array('a','b','c'),array('d','e','f'), array('g','h','i'), array('j'));

请注意,如果$数组中只有1,2或3个元素,我需要这个。大多数时候它有数百个。

由于

4 个答案:

答案 0 :(得分:4)

array_chunk()正是您所寻找的:

$parent_array = array_chunk($array, 3);

根据您的示例,将输出:

array
  0 => 
    array
      0 => string 'a' (length=1)
      1 => string 'b' (length=1)
      2 => string 'c' (length=1)
  1 => 
    array
      3 => string 'd' (length=1)
      4 => string 'e' (length=1)
      5 => string 'f' (length=1)
  2 => 
    array
      6 => string 'g' (length=1)
      7 => string 'h' (length=1)
      8 => string 'i' (length=1)
  3 => 
    array
      9 => string 'j' (length=1)

答案 1 :(得分:2)

数组块是你的朋友;)

$array = array('a','b','c','d','e','f','g','h','i','j');
$result = array_chunk($array, 3);
var_dump($result);

答案 2 :(得分:2)

尝试

$myArray = ('a','b','c','d','e','f','g','h','i','j');
$parent = array_chunk($myArray,3); 

答案 3 :(得分:0)

$i = 0;
$j = 0;
$parent_array = array();
foreach($array as $val)
{
   if ($i++ % 3 == 0)
   {
      $parent_array[++$j] = array();
   $parent_array[$j][] = $val;
}

$ parent_array将是一个二维数组。