从PHP数组生成表

时间:2010-03-18 06:29:50

标签: php arrays html-table

我不确定这有多难,但我有一个数组,并希望把它放到一个html表中。 我需要每行有两个数组字符串,所以如果这是数组:

   $array1 = array(
     1 => 'one',
     2 => 'two',
     3 => 'three',
     4 => 'four',
     5 => "five",
     6 => 'six',
    );

我需要html表看起来像这样:

| one |  two |
|three| four |
|five | six  |

这是我的代码:

$db = new Database(DB_SERVER, DB_USER, DB_PASS, DB_DATABASE);
$db->connect(); 

    $sql = "SELECT ID, movieno
            FROM movies
            ORDER BY ID DESC
            LIMIT 6 ";

    $rows = $db->query($sql);

    print '<table width="307" border="0" cellspacing="5" cellpadding="4">';
    while ($record = $db->fetch_array($rows)) {
        $vidaidi = $record['movieno'];
        print <<<END
        <tr>
            <td>
                <a href="http://www.youtube.com/watch?v=$vidaidi" target="_blank">

                <img src="http://img.youtube.com/vi/$vidaidi/1.jpg" width="123" height="80"></a>   
            </td> 
        </tr>
    END;
    }
    print '</table>';  

我想把它放在两列。

5 个答案:

答案 0 :(得分:2)

$array1 = array(
     1 => 'one',
     2 => 'two',
     3 => 'three',
     4 => 'four',
     5 => "five",
     6 => 'six',
    );

echo '<table>';
for ($i = 1; $i <= 7; $i++) {
  if ($i % 2 == 1) echo '<tr>';
  echo "<td>{$array1[$i]}</td>";
  if ($i % 2 == 2) echo '</tr>';
}
echo '</table>';

答案 1 :(得分:2)

试试这段代码......

<?php

$array1 = array(
                1 => 'one',
                2 => 'two',
                3 => 'three',
                4 => 'four',
                5 => "five",
                6 => 'six',
               );

$val = current  ( $array1 )  ;
print "<table border=1>";
while ( $val )
{
  print "<tr> <td> $val </td> ";
  $val = next ( $array1 ) ;
  print "<td> $val </td> </tr> ";
  print "\n";
  $val = next ( $array1 );
}

print "</table>";

?>

答案 2 :(得分:0)

你可以用这样的多维数组来做到这一点: http://www.terrawebdesign.com/multidimensional.php

除了编写自己的代码来创建和标签,我认为没有内置的方式。

您可以使用print_r()以查看数组的内置方式打印数组的内容。

答案 3 :(得分:0)

echo "<table>";
for($i=0;$i+=2;$i<count($array1))
{
   echo "<tr><td>".$array1[$i]."</td><td>".isset($array1[$i+1])?$array1[$i+1]:'no value'."</td></tr>";
}
echo "</table>"

答案 4 :(得分:0)

您可以执行以下操作:

print "<table>";
for($i=1;$i<=count($arr);$i++) {
        if($i%2)
                print"<tr><td>$arr[$i]</td>";
        else
                print"<td>$arr[$i]</td></tr>\n";
}
print "</table>";