从数组

时间:2015-08-27 09:35:39

标签: php loops

假设我有120个项目的数组。我需要将它们分成相同块的逗号分隔文本。

例如,如果我选择将所有元素分成50/120个项目的块,则应分为50,50和20个。

我尝试了以下代码:

$lines = file("all.txt", FILE_IGNORE_NEW_LINES);
$allarr[] = array_chunk($lines, 50);


foreach($allarr[0]  as $chunks);
{
    $str = implode($chunks,",");

    echo $str."<br><br>";
 }

上面的代码创建了正确的数组块。但是,当我想循环它并添加内爆。它只打印最后一个数组。

编辑:为了便于理解,下面是示例

$lines = array(1,2,3,4,5);
$allarr = array_chunk($lines, 3);
var_dump($allar);

foreach($allarr as $chunks);
{

var_dump($chunks);
$str = implode($chunks,",");

}

$allar输出

的位置
array(2) {
  [0]=>
  array(3) {
    [0]=>
    int(1)
    [1]=>
    int(2)
    [2]=>
    int(3)
  }
  [1]=>
  array(2) {
    [0]=>
    int(4)
    [1]=>
    int(5)
  }
}

$chunks输出只是数组的最后一部分

array(2) {
  [0]=>
  int(4)
  [1]=>
  int(5)
}

1 个答案:

答案 0 :(得分:1)

你有一个额外的;提前结束foreach循环。

foreach ($allarr as $chunks);
                            ^

所以你在foreach循环中什么都不做,然后在循环结束后再做var_dump($chunks)。这就是为什么它只显示最后一个块。

摆脱;,它将正常工作。

DEMO