2012-05-16 127 views
0

我有一個數組中的圖像,我希望它們能夠以3列顯示!如何格式化表格以在PHP中顯示圖像

所以,很顯然在HTML,它是這樣的:

<table> 
    <tr> 
     <td><img src="image1.jpg"></td> 
     <td><img src="image2.jpg"></td> 
     <td><img src="image3.jpg"></td> 
    </tr> 
    <!-- and so on... --> 
</table> 

所以我希望它在PHP中打印出來,但問題是代碼。

我的代碼是這樣的:

$photos = array( "image1", 
         "image2", 
         "image3", 
         "image4", 
         "image5", 
      ); 
    foreach ($photos as $photo) { 
     $i = 0; 
     if ($i < 3) { 
      echo '<td><center><img src="'.$photo.'.jpg"></td>'; 
      $i++; 
     } elseif ($i == 3) { 
      echo '</tr><tr>'; 
      $i = 0; 
     } 
    } 

我不知道是什麼似乎是我回聲出變量$i問題,每一次,呼應出像11111111111111111111111111111111111111111111.

回答

3

改變這

foreach ($photos as $photo) { 
     $i = 0; 

$i = 0; 
foreach ($photos as $photo) { 
+0

哦,我明白了。是因爲當代碼@ foreach循環完成?變量$ i會再次回到0?對?因此$ i ++會被忽略? XD –

2

爲什麼$ i在foreach循環中?這一定是原因。 $ i在每個循環開始時被初始化。

+0

只要笏Satya說,$ i的價值就會改變。 –

2

嘗試display:inline-block;改爲在CSS中。這工作得很好。

下面是一個例子...

<img src="image1.jpg" style="display:inline-block;> 
<img src="image2.jpg" style="display:inline-block;> 
<img src="image3.jpg" style="display:inline-block;> 

,如果你想添加文字或者圖像的東西,你甚至可以問...

+0

嘿!這也起作用。謝謝。 :) –

0

我發現使用array_chunk對這種事情更優雅。

$chunks = array_chunk($photos, 3); 
foreach ($chunks as $chunk) 
{ 
    echo '<tr>'; 
    foreach ($chunk as $photo) 
    { 
     echo '<td><img src="', $photo, '.jpg" /></td>'; 
    } 
    echo '</tr>'; 
} 

此外,不要使用'中心'標記,它已被棄用。使用CSS來對齊內容。

此外,嚴格來說,這不是HTML表格的用途。當然他們工作得很好。事實上,他們比'正確'的解決方案更好,但他們不正確。不過,如果您只是需要快速修復,請繼續使用它們。這實際上並沒有造成任何問題。

相關問題