1

我有一个 $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'));

请注意,如果 $array 只有 1、2 或 3 个元素,我需要它来工作。大多数时候它有数百个。

谢谢

4

4 回答 4

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)
于 2013-07-19T10:00:02.837 回答
2

数组块是你的朋友;)

$array = array('a','b','c','d','e','f','g','h','i','j');
$result = array_chunk($array, 3);
var_dump($result);
于 2013-07-19T10:00:01.783 回答
2

尝试

$myArray = ('a','b','c','d','e','f','g','h','i','j');
$parent = array_chunk($myArray,3); 
于 2013-07-19T10:00:09.020 回答
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 将是一个二维数组。

于 2013-07-19T10:00:17.003 回答