代码之家  ›  专栏  ›  技术社区  ›  Hailwood

三行一行的PHP回声?

  •  2
  • Hailwood  · 技术社区  · 15 年前

    我正试图按这样的三行显示数据(注意,项目数并不总是相等的):

    abcd defg hijk
    lmno pqrs tuvw
    xyz1 2345 6789 
    1011 1213
    

    我正在努力使逻辑正确地做到这一点(这是在 foreach() 循环)。

    我知道我必须要一些 if($i %3 == 0) 里面的逻辑……但我有点困了。

    有人能帮我吗?

    3 回复  |  直到 15 年前
        1
  •  4
  •   cambraca    15 年前
    $a = array('abcd','defg','hijk','lmno');
    for ($i = 0; $i < count($a); $i++) {
      if ($i && $i % 3 == 0)
        echo '<br />';
      echo $a[$i].' ';
    }
    
        2
  •  1
  •   codaddict    15 年前

    最好使用 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
  •  0
  •   paxdiablo    15 年前

    伪代码,因为我不知道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 更改每行的数字输出。

    推荐文章