2013-02-21 40 views
0

我有一段代碼,它使用SimpleXMLElement讀取XML目錄文件,並將該目錄的包含產品打印到網站上的CSS樣式表中。用PHP設置表中的列數

該代碼輸出彼此相鄰的每個產品。 但是我只想連續顯示4個產品。

我因此需要插入以下所述陣列中的產品的每一個4(或x)號一些

<tr> </tr> 

標籤。

我該怎麼做?我的代碼如下:

echo '<table class="products">'; 

foreach (getProdutcsFromCatalog($grpName) as $product) { 


         $output = ' 

         <td> 
          <h2>' .$product->title .'</h2> 
          <div class="img"> 
           <img src="' .$product->img . '" height="150" width="100" class =""/> 
          </div> 
          <div> 
           '.$product->description.' 
          </div> 
          </div> 
          <div class="price"> 
           <b> 
            '.$product->price . ' DKK' . ' 
           </b> 
          </div> 
          <div class="addToCart"> 
           <a href="#">Læg i kurv</a> 
          </div> 
         </td> 

         '; 

         echo $output; 
        } 

       echo '</table>'; 
+0

我沒有看到任何'tr'標籤。 – hjpotter92 2013-02-21 20:44:54

+0

這是因爲我無法弄清楚在哪裏以及如何放置它們,所以我得到了我想要的結果。我的問題是我應該如何添加這些標籤。 – Zahrec 2013-02-21 21:18:28

回答

1

初始化$i = 0;開始foreach循環之前。然後改變你的

echo $output; 
} 

到:

if($i % 4 == 0) echo "<tr>"; 
    echo $output; 
    if($i % 4 == 3) echo "</tr>"; 
    $i++; 
} 
+0

非常感謝你這個簡單而有效的解決方案。我已經嘗試了許多不同的和更高級的方法 - 而不是它們正常​​工作。 %是什麼意思? – Zahrec 2013-02-21 21:16:14

+0

'%'是一個算術運算符,稱爲**模**。它返回餘數。在這裏,閱讀文檔中的[this](http://php.net/manual/en/language.operators.arithmetic.php)。 – hjpotter92 2013-02-21 21:39:30

+0

謝謝你的時間。 – Zahrec 2013-02-21 21:48:51

0

如果你只是想4個項目每行我建議你先遍歷XML結構,並保存在一個數組的所有項目,然後array_chunk($items, 4)的數組,然後通過它循環並生成表格。

+0

我嘗試過,但我無法讓它工作... – Zahrec 2013-02-21 21:17:03