2016-10-01 13 views
2

while 루프에서 제목 및 이미지 링크 목록 만들기, 다음 이미지에서와 같이 나란히 표시하고 싶습니다. 각 열 머리글은 새로운 열로 표시되며 이미지는 아래에 있어야합니다. 각 category.and 단 3 행. 난 당신이 필요로하는 것을 잘 이해하지만 이것에 대해 경우 더 확실 I'amwhile while by while 루프 테이블

<table> 
    <tr> 
     <th>Heading 1</th> 
     <th>Heading 2</th> 
     <th>Heading 3</th> 
    </tr> 
    <?php 
     //example array $images = array('Image 1', 'Image 2', 'Image 3', 'Image 4', 'Image 5',); 
     for ($i=0; $i<count($images); $i++) { ?> 
     <tr> 
      <td> 
      <?php echo $images[$i]; ?></td> 
      <td><?php echo $i<3?$images[$i]:''; ?></td> 
      <td><?php echo $i<1?$images[$i]:''; ?></td> 
     </tr> <?php } ?> 
</table> 
+0

여기 enter image description here

내 코드입니다

제목 1 제목 2 표제어 3

+0

항상 최대 3 개의 행을 사용해야합니까? 즉, 제목 1에 이미지가 5 개있는 경우 2 개가 아래에 표시되고 나머지는 오른쪽에 표시됩니까? –

+0

예 correct ... :) –

답변

5

:

$headings = ['heading 1', 'heading 2', 'heading 3']; 
$images = [ 
    'heading 1' => ['image 1', 'image 2', 'image 3', 'image 4', 'image 5'], 
    'heading 2' => ['image 1', 'image 2', 'image 3'], 
    'heading 3' => ['image 1'] 
]; 

$rows = []; 

foreach($headings as $heading){ 
    $rowId = 0; 
    $rows[$rowId][] = '<th>'.$heading.'</th>'; 

    if(isset($images[$heading])){ 
     foreach($images[$heading] as $image){ 
      $rowId += 1; 
      if($rowId == 3){ 
       $rowId = 0; 
      } 
      $rows[$rowId][] = '<td>'.$image.'</td>'; 
     } 
    } 

    for($i = $rowId + 1; $i < 3; $i++){ 
     $rows[$i][] = '<td>&nbsp;</td>'; 
    } 
} 

echo '<table>'; 
foreach($rows as $row){ 
    echo '<tr>'; 
    foreach($row as $column){ 
     echo $column; 
    } 
    echo '</tr>'; 
} 
echo '</table>'; 
+0

좋은 답변 @marek janoud –

+0

감사합니다 마렉 .. 이건 내가 필요로하는 .. –