PHP中的循环重复增加数组的值

时间:2014-05-27 15:18:49

标签: php loops

我遇到了创建标题循环的问题。我想为每个标题创建一个日期列表,这些日期是从标题中提取的。

我想我想在循环中循环。

我认为一旦$h到达$number_of_days,它就不会重置,即使它在第一个while循环内。有没有不同的方法可以解决这个问题?

$h='1';
          while($report_types = $rt_type->fetch())
            {


$rt_types = $report_types['report_name'];
            echo '<div>'. $rt_types .'</div>';


while($h <= $number_of_days){          
            echo '<div class="report_day">'.$h.'</div>';
            $h++;

            }    
        }

3 个答案:

答案 0 :(得分:3)

我在$h

的下一个循环之前向$report_types添加了重置
    $h=1;
    while($report_types = $rt_type->fetch())
    {
        $rt_types = $report_types['report_name'];
        echo '<div>'. $rt_types .'</div>';


        while($h <= $number_of_days){          
            echo '<div class="report_day">'.$h.'</div>';
            $h++;
        }

        $h=1; //RESET BEFORE NEXT LOOP
    }

答案 1 :(得分:0)

$h='1';置于第一个内。

所以改变:

$h='1';
while($report_types = $rt_type->fetch())
{

成:

while($report_types = $rt_type->fetch())
{
    $h='1';

答案 2 :(得分:0)

您的代码的部分问题来自格式化而不是任何事情。代码越不易读,调试就越困难。

那就是说,这是我的代码的重写版本:

while($report_types = $rt_type->fetch()) {
  $rt_types = $report_types['report_name'];
  echo '<div>' . $rt_types . '</div>';
  for ($h = 1; $h <= $number_of_days; $h++) {
    echo '<div class="report_day">' . $h . '</div>';
  }
}

我做的是删除while循环&amp;将它切换到for循环,这使逻辑更清洁。所以现在你的$h1递增逻辑全部包含在这一行for ($h = 1; $h <= $number_of_days; $h++) {中,这使得它更易于阅读和阅读。也明白了。

此外,就原始代码而言,此$h的分配存在问题:

$h='1';

当您将值放在引号中时,它会使这些引号中的内容成为文字字符串。出于数字目的,您可以将其设置为:

$h=1;