【问题标题】:PHP echo in rows of three?PHP以三行回显?
【发布时间】:2010-11-23 03:02:13
【问题描述】:

我试图像这样以三行显示数据(注意项目的数量并不总是偶数):

abcd defg hijk lmno pqrs tuvw xyz1 2345 6789 1011 1213

我正在努力获得正确的逻辑来执行此操作(这是在 foreach() 循环中)。

我知道我必须有一些 if($i %3 == 0) 逻辑。但我有点卡住了。

谁能帮帮我?

【问题讨论】:

    标签: php logic modulus


    【解决方案1】:
    $a = array('abcd','defg','hijk','lmno');
    for ($i = 0; $i < count($a); $i++) {
      if ($i && $i % 3 == 0)
        echo '<br />';
      echo $a[$i].' ';
    }
    

    【讨论】:

      【解决方案2】:

      最好使用for 循环:

      // run $i for each index in the array.
      for($i=0 ; $i<count($arr) ; $i++) {
      
              // if $i is non-zero and is divisible by 3 print a line break.
              if ($i && $i % 3 == 0) {
                      echo "<br />";
              }
      
              // print the element at index $i.
              echo $arr[$i].'&nbsp;';
      }
      

      Code in action

      【讨论】:

        【解决方案3】:

        伪代码,因为我不懂 PHP(而且您要求的逻辑在所有程序语言中都趋于相同):

        perline = 3
        i = 0
        foreach item in list:
            if i > 0 and (i % perline) == 0:
                print newline
            if (i % perline) != 0:
                print space
            print item
            i = i + 1
        

        这将在元素 3、6、9 等之前输出行分隔符(第一个元素为 0)并且在每行的第二个和第三个元素之前放置您想要的任何所需间距。您可以为 perline 使用不同的值来更改每行的数字输出。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-10-28
          • 2010-09-20
          • 2012-06-29
          • 1970-01-01
          • 2015-07-05
          • 2018-05-09
          • 1970-01-01
          相关资源
          最近更新 更多