2012-12-08 3 views
0

세 개의 짧은 컬럼 대신에 하나 정말 긴 하나의 콘텐츠를 표시하려면이 PHP 코드3 개의 짧은 열에 긴 목록을 표시하려면 어떻게합니까?

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

을 수정하는 방법이 있나요? 여기처럼 http://www.registrar.fas.harvard.edu/courses-exams/courses-instruction

표시 순서는 같이 할 필요가이

1 4 7 
2 5 8 
3 6 9 
+0

당신이 3 열 테이블로 유지하려는 또는 당신은 또한 HTML 태그를 변경하고 일부 CSS를 추가 할 수 있습니까? –

+0

나는 array_chunk를 사용하고 3 uls를 사용하려고한다. – Popnoodles

답변

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>"); 
+0

항목이 행 대신 열을 따라 사전 순으로 정렬되도록 수정하는 방법이 있습니까? –

+0

원래 질문에 필요한 표시 순서를 추가했습니다. –

+0

그건 좀 까다 롭습니다. 그 자체로는 하나의 질문이 될 수 있습니다. 또는 시도하고 자신을 통해 일하는 재미있는 학습 알고리즘 :) –

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++; 
} 
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>'; 
+0

나는 카테고리 키가 정수가 아닐 수도 있고 0 기반, 선형 또는 인접하지 않을 수 있습니다 경고와 함께 갈 것입니다. – Crisp

+0

태그가없고 $ category에있는 요소의 수에 따라 끝에있는 셀이 있습니다. –

+0

항목이 행 대신 열의 사전 순으로 정렬되도록 수정하는 방법이 있습니까? –

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 
관련 문제