0

目前,每个 td../td 仅打印 1 行,这使得源代码非常难以阅读,无论如何我都可以在新行上打印每个 td../td 元素以使其更具可读性。

感谢您的回复。我试过休息,但它打印在屏幕上,需要把它放在这里但是在哪里?

$entries[$i] = '<td>'.$id[$i] .'</td>';
    $entries[$i] .= '<td>'.$username[$i].'</td>';
    $entries[$i] .= '<td>'.$first_name[$i].'</td>';

进一步编辑:在此处输入图像描述

相关的 HTML

<!-- Main hero unit for a primary marketing message or call to action --> 
      <div class="hero-unit"> 

        <div class="row">

<table class="table">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<td>2</td>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<td>3</td>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>

   <table class="table table-bordered"> 
    <thead> 
    <tr> 
    <th>ID</th> 
    <th>Username</th> 
    <th>First Name</th> 
    <th>Last Name</th> 
    <th>Email Address</th>
    <th>Country</th>
    <th>Referrer</th>
    </tr>
    </thead>

       <tbody>
       <tr>

     <?php 

if (isset($content) && !empty($content) && is_array($content)) {//2
$i = 0;
$entries = array();


    while(array_key_exists($i, $content)) {//1

    $entries[$i] = "\n" .'<td>'.$id[$i] .'</td>';
    $entries[$i] .= "\n" .'<td>'.$username[$i].'</td>';
    $entries[$i] .= "\n" .'<td>'.$first_name[$i].'</td>';
    $entries[$i] .= "\n" .'<td>'.$last_name[$i].'</td>';
    $entries[$i] .= "\n" .'<td>'.$email_address[$i].'</td>';
    $entries[$i] .= "\n" .'<td>'.$country[$i].'</td>';
    $entries[$i] .= "\n" .'<td>'.$where_about[$i].'</td>';
    //$entries[$i] .= '<td>'.$sample[$i].'</td>';

    echo $entries[$i];


     $i++;


}//1

}//2


?>

</tr> 
</tbody>
</table> 
4

7 回答 7

4

连接"\n"到语句的前面

编辑

$entries[$i] = "\n" . '<td>'.$id[$i] .'</td>';
$entries[$i] .= "\n" . '<td>'.$username[$i].'</td>';
$entries[$i] .= "\n" . '<td>'.$first_name[$i].'</td>';
于 2012-04-03T20:46:05.923 回答
2

一个巧妙的技巧是用换行符定义一个常量:

define('NL', "\r\n");

然后我们只是连接那个常量而不用担心使用单我们的双 qoutes 用法:

$entries[$i] = '<td>'.$id[$i] .'</td>' . NL .
               '<td>'.$username[$i].'</td>' . NL .
               '<td>'.$first_name[$i].'</td>' . NL;

同样的技巧当然可以应用于标签:

define('TAB', "\t");

所以我们可以做一些像这样激进的事情,例如:

$entries[$i] = '<tr>' . NL . 
               TAB . '<td>' . $id[$i] . '</td>' . NL .
               TAB . '<td>' . $username[$i] . '</td>' . NL .
               TAB . '<td>' . $first_name[$i] . '</td>' . NL .
               '</tr>' . NL;

空格当然取决于个人喜好,但是当您保持一致时,它甚至可以使您的代码保持可读性!

在您的情况下,您可以通过<td>使用 foreach 循环遍历所有字段来处理这些列 (),从而使您的代码更酷。

$entries[$i] = '<tr>' . NL;

foreach(array('id', 'username', 'first_name') as $key) {
    $entries[$i] = TAB . '<td>' . ${$key}[$i] . '</td>' . NL;
}

$entries[$i] = '</tr>' . NL;

现在告诉我这不酷!

似乎您的代码只是缺乏将每一列添加到自己的表格行(tr)中的智能,这是您的相关 PHP 代码,其中包含修复和建议的添加,它应该可以工作,但我无法测试它。

<?php 

define('NL', "\r\n");
define('TAB', "\t");

if (isset($content) && !empty($content) && is_array($content)) {
    $i = 0;
    $entries = array();
    $fields = array('id', 'username', 'first_name', 'last_name', 'email_address', 'country', 'where_about');

    while(array_key_exists($i, $content)) {
        $entries[$i] = '<tr>' . NL;
        foreach($fields as $key) {
            $entries[$i] = TAB . '<td>' . ${$key}[$i] . '</td>' . NL;
        }
        $entries[$i] = '</tr>' . NL;

        echo $entries[$i];
        $i++;
    }

}
?>

在我阅读本文时,花一点时间浏览 $content 可能不是一个好主意,foreach($content as $index => $value)而是尝试这样做会使$indexof 等价,$i但您不需要使用$content[$index],因为该确切值将出现在$valueforeach 中。

于 2012-04-03T21:05:58.500 回答
1

在您回显/打印的 td 标记后使用 '\n'

于 2012-04-03T20:47:02.447 回答
1
<? 
     foreach($array as $single) { 
          echo "<td></td> \n";
     }
?>
于 2012-04-03T20:47:45.520 回答
1

您可以在打印语句中添加换行符。

echo "My text\n";

您还可以添加标签以使其整齐地缩进。

echo "\t\tMy text\n";

于 2012-04-03T20:47:45.487 回答
1

我想补充一点:如果你使用 Windows 来阅读代码,你应该使用\r\n而不是仅仅\n

于 2012-04-03T20:51:58.383 回答
1

不知道你在问什么,但如果你想摆脱:

$s .= '<td>' . $n . '</td>';

使用($co 表示关闭打开)

$co = '</td><td>';
$row = '<tr><td>' . $data . $co . $data2 . $co . $data3 . '</td></tr>';
于 2012-04-03T20:55:05.390 回答