PHP:循环数组输出(增加变量)



我使用以下代码输出数组的内容:

$txt = sprintf("%s %s %s %s %s %s %s", $myarray[1], $myarray[2], $myarray[3], $myarray[4], $myarray[5], $myarray[6], $myarray[7]);
echo $txt; 
echo "<br />";
$txt = sprintf("%s %s %s %s %s %s %s", $myarray[8], $myarray[9], $myarray[10], $myarray[11], $myarray[12], $myarray[13], $myarray[14]);
echo $txt; 
echo "<br />";
$txt = sprintf("%s %s %s %s %s %s %s", $myarray[15], $myarray[16], $myarray[17], $myarray[18], $myarray[19], $myarray[20], $myarray[21]);
echo $txt; here

现在我想循环它,我试着这样做:

for($a=1, $b=2, $c=3, $d=4, $e=5, $f=6, $g=7; $i<=count($myarray); $a,$b,$c,$d,$e,$f,$g +=7)
{
    $txt = sprintf("%s %s %s %s %s %s %s", $myarray[$a], $myarray[$b], $myarray[$c], $myarray[$d], $myarray[$e], $myarray[$f], $myarray[$g]);
    echo $txt; 
}

,但不幸的是它不起作用

我的方法是:

  • 每次迭代增加$i 7。
  • 使用array_slice获取偏移量为$i的7个项目。
  • 使用vsprintf作为array参数。

试试这个:

for ($i=0; $i < count($myArray); $i+=7) {
    echo vsprintf("%s %s %s %s %s %s %s", array_slice($myArray, $i, 7)).'<br />';
}

或使用内爆,使代码看起来更干净。

for ($i=0; $i < count($myArray); $i+=7) {
    echo implode(" ", array_slice($myArray, $i, 7)).'<br />';
}
$size = 6;
foreach(array_chunk($array, $size) as $values) {
    echo implode(' ', $values) . '<br />';
}

您没有初始化和增加$i,我认为这可能会导致问题

Please try this,

for($a=1, $b=2, $c=3, $d=4, $e=5, $f=6, $g=7,$i=1; $i<=3; $a+=7,$b+=7,$c+=7,$d+=7,$e+=7,$f+=7,$g+=7,$i++)
{
$txt = sprintf("%s %s %s %s %s %s %s", $myarray[$a], $myarray[$b], $myarray[$c], $myarray[$d], $myarray[$e], $myarray[$f], $myarray[$g]);
echo $txt; 
}

最新更新