假设我有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)
}
答案 0 :(得分:1)
你有一个额外的;
提前结束foreach
循环。
foreach ($allarr as $chunks);
^
所以你在foreach
循环中什么都不做,然后在循环结束后再做var_dump($chunks)
。这就是为什么它只显示最后一个块。
摆脱;
,它将正常工作。