2

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

abcd defg hijk
lmno pqrs tuvw
xyz1 2345 6789
1011 1213

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

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

谁能帮我吗?

4

3 回答 3

4
$a = array('abcd','defg','hijk','lmno');
for ($i = 0; $i < count($a); $i++) {
  if ($i && $i % 3 == 0)
    echo '<br />';
  echo $a[$i].' ';
}
于 2010-11-23T03:06:19.643 回答
1

最好使用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;';
}

代码在行动

于 2010-11-23T03:07:56.103 回答
0

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

于 2010-11-23T03:06:20.040 回答