0

この PHP コードを変更する方法はありますか

    foreach ($categories as $category)    
    {
        print("<tr>");               
        print("<td><a href=\"category.php?category=" . $category["id"] . "\">{$category["category"]}</a></td>");            
        print("</tr>");    
    }

1 つの非常に長い列ではなく、3 つの短い列でコンテンツを表示するにはどうすればよいですか? ここのようにhttp://www.registrar.fas.harvard.edu/courses-exams/courses-instruction

表示順序は次のようにする必要があります。

1 4 7
2 5 8 
3 6 9
4

4 に答える 4

1

各行タグで3つのセルタグを使用する必要があります。

$cols = 3;
$col = 0;
foreach ($categories as $category)    
{
    if($col == 0)
        print("<tr>");            
    if($col < $cols) {
        print("<td><a href=\"category.php?category=" . $category["id"] . "\">{$category["category"]}</a></td>"); 
        $col++;
    } else {
        print("</tr>");  
        $col = 0;
    }  
}
if($col != 0)
    print("</tr>");
于 2012-12-08T20:31:01.757 に答える
0

$categories が配列であると仮定します。

$columns = 3;
$rows = ceil( sizeof( $categories ) / $columns );
echo "<table>\n";    
for ( $row = 1; $row <= $rows; $row++ )    
{
    echo "<tr>\n";  
    for ($column = 1; $column <= $columns; $column++) {
        $p = (($column - 1) * $rows) + $row - 1;
        $value = sizeof($categories) > $p ? $categories[$p] : '&nbsp;';
        echo "<td>{$value} {$p}</td>\n";
    }
    echo "</tr>\n";
 }
echo "</table>";

注文は

1 4 7
2 5 8 
3 6 9
于 2012-12-09T17:57:26.130 に答える
0
$i=1;
foreach ($categories as $category)    
{
    if($i==1) {
      print("<tr>");  
    }             
    print("<td><a href=\"category.php?category=" . $category["id"] . "\">{$category["category"]}</a></td>");  
    if($i==3) {       
       print("</tr>"); 
       $i=1; 
    }
    $i++;  
}
于 2012-12-08T20:35:05.040 に答える
0

これは次のようにリストされます:

//    0,1,2
//    3,4,5

echo '<table><tr>';
foreach ($categories as $k=>$category){
    if($k%3==0 && $k!=0){
        echo '</tr><tr>';
    }
    echo '<td><a href="category.php?category='.$category["id"].'">'.$category["category"].'</a></td>';

}
echo '</table>';
于 2012-12-08T20:35:55.540 に答える