【问题标题】:Single PHP Loop to print the no. sequence in Ascending or Desending单个 PHP 循环打印编号。升序或降序
【发布时间】:2014-10-25 17:32:26
【问题描述】:

我有两个变量 x 和 y

如果 x = 5 和 y = 10 我想打印

5
6
7
8
9
10

如果 x = 10 和 y = 5 那么我想打印

10
9
8
7
6
5

我已经使用 IF 在 2 Loop 中编写了这段代码

是否有任何逻辑可以使用单个循环打印此内容

【问题讨论】:

    标签: php loops for-loop


    【解决方案1】:

    这比其他答案简单得多:

    foreach (range($x, $y) as $number) {
        echo $number . "<BR>";
    }
    

    http://php.net/manual/en/function.range.php

    【讨论】:

    • 是的,我同意,这样更好:)
    • +1, range 是这个问题最合适的解决方案
    • -1。这将在内存中创建一个数组,其中包含该范围内的所有可能值。试试foreach (range(1, 10000000) as $number) /*do nothing*/ ; 之类的东西,它会耗尽通常的 128M 限制。
    • 删除了 -1。你有一个观点。但我不会删除我的评论,因为我认为这对其他人提出这个问题很有价值。
    【解决方案2】:
    $increment = ($x < $y) ? 1 : -1;
    
    for ($i = $x; $i != $y; $i += $increment) {
        echo $i;
    }
    

    【讨论】:

      【解决方案3】:

      这应该适合你:

      <?php
      
          $x = 10;
          $y = 5;
      
          for ($i = 0; $i <= abs($x-$y); $i++) {
              if ($x > $y)
                  echo $x-$i . "<br />";
      
              elseif($x < $y)
                  echo $x+$i . "<br />";
          }
      
      ?>
      

      【讨论】:

        【解决方案4】:

        你正在寻找这个:

        <?php
        
        $x = 5;
        $y = 10;
        
        while ($x != $y) { // this loop prints the numbers until they are equal
            if ($x < $y) echo $x++ . "\n\n"; // if x < y print and increment x
            else echo $x-- . "\n\n"; // else print and decrement x
        }
        
        echo $x . "\n\n"; // now the two nos are equal, print the no itself
        

        【讨论】:

          【解决方案5】:

          一个循环,每次迭代一个条件

          <?php
          
          $x = 5;
          $y = 10;
          
          $start = $x;
          $step = $x < $y ? 1 : -1;
          $stop = $y + $step;
          
          for ($i = $start; $i != $stop; $i+=$step) {
              echo $i . "\n";
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-04-09
            • 2022-12-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多