【问题标题】:display format of input using php使用php显示输入格式
【发布时间】:2011-06-29 07:39:43
【问题描述】:

我需要在三列中显示 10 个数字的数组。如果我添加另一个数字,比如 11,它必须添加到 10 以下。因为数字增加的行可以增加而不是列,有人可以说吗?

1 4 7 10
2 5 8
3 6 9

我在第四列得到 10,但我需要在第三列。并且行会增加像

1 4 8
2 5 9
3 6 10
4 7

【问题讨论】:

  • 你能给出一个你真正想要的输出示例吗?
  • 三列意味着 10 以自己的一行结束。为什么必须在下显示11个呢?你能举个例子吗?
  • 我发誓最近有人问过同样的问题,但我现在找不到......
  • 给你:How do I distribute values of an array in three columns?浏览器历史搜索功能FTW。
  • 被同一个地方的两个人问了,有没有可能是同班的作业? :D(我知道印度很大)

标签: php for-loop while-loop


【解决方案1】:

在表格中显示输出..

<?php
$arr = array("1","2","3","4","5","6","7","8","9","10", "11", "12", "13");

$row= ceil(count($arr)/3);
echo "<table border='1'>";
for($i = 1; $i <= $row; $i++) {
    echo "<tr>";
    echo "<td>". $i ."</td>";
    $k = 0;
    $pre = 0;
  for($j = 1; $j <= 2; $j++) {
    if($pre == 0)
      $pre = $k = $i + $row;
    else
      $pre = $pre + $row;

    if($pre <= max($arr))
      echo "<td>". $arr[$pre-1] ."</td>";
  }
  echo "</tr>";
}
echo "</table>";
?>

输出将是:

1   6   11
2   7   12
3   8   13
4   9
5   10

【讨论】:

  • 而不是像这样编写整个数组 $arr = array("1","2","3","4","5","6","7"," 8","9","10", "11", "12", "13");,你可以使用 $arr = range(1,13);
  • 好建议。但在这里我的目标是以所需格式显示数据。
【解决方案2】:

试试这个...

<?php
$arr = array("1","2","3","4","5","6","7","8","9","10", "11", "12", "13", "14");

$row= ceil(count($arr)/3);

for($i = 1; $i <= $row; $i++) {
    echo $i;
    $k = 0;
    $pre = 0;
  for($j = 1; $j <= 2; $j++) {
    if($pre == 0)
      $pre = $k = $i + $row;
    else
      $pre = $pre + $row;

    if($pre <= max($arr))
      echo " ". $arr[$pre-1] ." ";
  }
  echo "<br>";
}

?>

14 元素时输出:

1 6 11
2 7 12
3 8 13
4 9 14
5 10 

11 个元素时输出:

1 5 9
2 6 10
3 7 11
4 8 

13 元素时输出:

1 6 11
2 7 12
3 8 13
4 9
5 10 

【讨论】:

  • yes jeni 很简单。我添加了在表格中添加结果的新答案。
猜你喜欢
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
相关资源
最近更新 更多