如何在多列中分割php输出?

时间:2016-12-13 13:17:08

标签: php css

我是php的新手,我已经通过互联网搜索了我的问题的解决方案,但仍无法找到解决问题的方法。

我有一个看起来像这样的PHP代码:

<?php 
if ($comments_count) {
    for($i=0; $i<$comments_count; $i++) {
        if ($dont_show_email[$i] != '1' && $email != '') { 
            $author[$i] = "<a href=\"mailto:{$email[$i]}\">{$author[$i]
        }
        </a>"; 
    }
    $text[$i] = str_replace(chr(13), '<br />', $text[$i]);
?>
<div>
  <?php print $author[$i]; ?>
  <?php print $time[$i]; ?>
  <?php print htmlspecialchars_decode($text[$i]); ?>
 </div>

显示和输出如下:

Post 1
Post 2
Post 3
Post 4

我已经尝试了几乎任何我找到的东西,但我无法让它适合我。 CSS列数也不起作用,因为每个帖子都有不同的高度大小,所以大多数帖子都被一列末尾的一半缩减。

我想让输出显示如下:

Column1  Column2  Column3
Post 1   Post 2   Post 3
Post 4   Post 5   Post 6

我需要将输出拆分为这样的列,这样每个帖子都可以保持不同的高度。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

试试这个(基于HTML无边框表格)解决方案:

<table style="border: none;">
<?php 
$columns = 3;
for($i=0; $i<$comments_count; $i++) {
    if ($i % $columns == 0) echo "<tr>"; // begin of row
    echo "<td>{$author[$i]}</td>";
    echo "<td>{$time[$i]}</td>";
    echo "<td>" . htmlspecialchars_decode($text[$i]) . "</td>";
    if ($i % $columns == ($columns - 1)) echo "</tr>"; // end of row
} ?>
</table>

答案 1 :(得分:0)

更新HTML代码

<div class="box">

添加css

.box{float:left; width:31%; margin:3px; padding:5px;}