php - группировка по столбцу в Do .. во время цикла - PullRequest
0 голосов
/ 27 апреля 2018

Я знаю, что это очень просто ... но, к сожалению, я могу пока что делать со своей головой, и это не моя домашняя работа это логично необходимо в моем приложении, мой кто-то подскажет подсказку .. вот код, который у меня есть ..

<?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

вывод заголовка по-прежнему 'header 1' .. 'header 1' не увеличивается .. до заголовка 1 ... header 2 ..

любая подсказка очень ценится ...

1 Ответ

0 голосов
/ 27 апреля 2018

У вас есть эта переменная с именем $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);

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...