【问题标题】:how can I use for loop我如何使用 for 循环
【发布时间】:2015-04-11 09:19:35
【问题描述】:

我只想问如何使用for循环来打印

123    
456

我正在尝试使用此代码:

<?php

    $a = array(1,2,3,4,5,6);

    foreach($a as $r){
        for($q = 0; $q < 3; $q++) {
            echo $r;
        }

        echo "<br />";

    }

?>

但问题是,它会打印:

111    
222    
333    
444    
555    
666

【问题讨论】:

  • 只需去掉内部的 for 循环!这是基本的php
  • foreach (array_chunk($a, 3) as $chunk) { foreach($chunk as $nr) echo $nr; echo '&lt;br /&gt;'; }
  • @Rizier123 这将在自己的行上打印每个数字。
  • @Ja͢ck 它缺乏研究。 OP 似乎并不了解基本的 for 循环是如何工作的。此外,这对社区来说并不是一个真正有用的问题。
  • 您能解释一下为什么您认为您的代码会产生预期的结果吗?

标签: php for-loop


【解决方案1】:

对于$r 的每个值,您要打印三次$r 的值;你想要的是打印每个值并在每三分之一之后打印一个中断。

这样的事情会起作用:

foreach ($a as $i => $r) {
    echo $r;
    // insert break after every third value
    if ($i > 0 && ($i + 1) % 3 == 0) {
        echo '<br />';
    }
}

或者,您可以使用array_chunk() 将数组分成三个块并打印每个块。

foreach (array_chunk($a, 3) as $chunk) { 
    foreach ($chunk as $nr) {
        echo $nr;
    }
    echo '<br />';
}

【讨论】:

    【解决方案2】:

    使用 array_chunk($a, 3) 然后使用 implode ,这将为您提供所需的结果。

    【讨论】:

      【解决方案3】:
      $a = array(1,2,3,4,5,6,7,8,9);
      $result='';
      $i = 1;
      foreach($a as $r)
      {
      $result.=$r;
          if($i%3 == 0)
          {
              echo $result."<br />";
              $result='';
          }
        $i++;  
      }
      

      【讨论】:

        猜你喜欢
        • 2014-08-05
        • 2021-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-02
        • 2012-01-27
        相关资源
        最近更新 更多