php - 在循环中按列分组..循环时

时间:2018-04-27 07:57:55

标签: php loops while-loop

我知道这是非常基本的...但不幸的是我现在可以用我的头脑,而这不是我的功课这在我的应用程序中是合乎逻辑的需要,我的某人告诉我的线索。 ..这里的代码我有..

<?php
$i = 0;
$header = 0;
$hitungLoopingObat= 9;
do{
  $remainder = ($i+1) % 5;
  $head = ($remainder+$i) % 5; // output: 1 .. 1
  // $head = (1+$remainder) % 5; // output: 2 .. 2
  // $head = (1+$header) % $hitungLoopingObat; // output: 1 .. 6

  if($remainder == 1)
    echo "Header " .$head. "\n";

  echo "Konten Ke " . $i . "\n";
  if( $remainder == 0) {
    echo "new line \n";
  }
  $i++;
  $header++;
}
while($i <= $hitungLoopingObat || $header <= $hitungLoopingObat);
if($remainder > 0){
  $loncat = (5 - $remainder)+1;
  for($j=0; $j<$loncat; $j++)
  {
    echo "Sisa New Line " .$loncat. "\n";
  }
}

我在这里测试:https://3v4l.org/SkBAX

标题的输出仍然是标题1&#39; ..&#39;标题1&#39;不要增加..到标题1 ...标题2 ..

任何线索都非常感谢......

1 个答案:

答案 0 :(得分:0)

你有一个名为$header的变量似乎有效地未被使用(它与$i具有完全相同的值)你也可以改为做某事。摆脱循环结束时的$header++和这一行:

$head = ($remainder+$i) % 5;

并更改此代码:

if($remainder == 1)
    echo "Header " .$head. "\n";

为:

if($remainder == 1)
    echo "Header " . $header++ . "\n";

现在假设$i$header在循环中做了完全相同的事情,目前尚不清楚您是要在$i > $hitungLoopingObat还是$header > $hitungLoopingObat或两者都终止。因此,由于此更改会影响$header的行为,因此您可能需要更改此行:

while($i <= $hitungLoopingObat || $header <= $hitungLoopingObat);

为:

while($i <= $hitungLoopingObat);

最终循环代码:

do {
  $remainder = ($i+1) % 5;

  if($remainder == 1)
    echo "Header " . $header++ . "\n";

  echo "Konten Ke " . $i . "\n";
  if( $remainder == 0 && $i < $hitungLoopingObat) {
    echo "new line \n";
  }
  $i++;
}
while ($i <= $hitungLoopingObat);

希望这有帮助。