2017-05-24 69 views
0

我想創建循環在我的表中,有4個項目,當列是3,然後創建新的行。電流輸出是這樣的:PHP循環在表

x 
x 
x 
x 

這裏是我的代碼:

<table border="0"> 
     <?php 
     $i = 0; 
     foreach ($list_items as $item){ // there is 4 item 
     $i++; 
     echo "<tr>"; 
     if ($i <= 3) { ?> 
      <td class="text-center" style="width:83.14px; height:60.47px; font-size:0.6em"> 
       <?php echo $item['productId'] ?> 
       <br> 
       <br> 
       <?php echo $item['qty'] ?> 
      </td> 
     <?php } 
     } 
     echo "</tr>"; 
     ?> 
    </table> 

我期待什麼是這樣的:

x|x|x 
x 

謝謝。

+1

您需要將您的'tr'環路內。 – Albzi

+3

我建議使用'flex'佈局而不是'table'佈局。那個換行符只是CSS規則。 – Sirko

回答

0

使用array_chunk()

<?php 

foreach (array_chunk($list_items,3) as $items) { 
    echo '<tr>';   

    foreach($items as $item){ 
?> 
     <td class="text-center" style="width:83.14px; height:60.47px; font-size:0.6em"> 
      <?php echo $item['productId'] ?> 
      <br> 
      <br> 
      <?php echo $item['qty'] ?> 
     </td> 
<?php 
    } 
    echo '</tr>'; 
} 
?> 
2

在您的問題的評論部分,Sirko是正確的。

無論如何,你可以像下面這樣做;

<?php 
    $i = 0; 
    foreach ($list_items as $item) { 
     if($i % 3 == 0) 
      echo '<tr>'; 

     echo '<td> bla bla bla </td>'; 

     if($i % 3 == 0) 
      echo '</tr>'; 

     $i++; 
    } 
1

更改您的代碼下面,它應該工作。

<table border="0"> 
     <?php 
     $i = 0; 
     foreach ($list_items as $item){ // there is 4 item 
      $i++; 
      echo "<tr>"; 
      if($i%3==0) echo echo "</tr><tr>"; 
      ?> 
       <td class="text-center" style="width:83.14px; height:60.47px; font-size:0.6em"> 
        <?php echo $item['productId'] ?> 
       </td> 
<td> 
        <?php echo $item['qty'] ?> 
       </td> 
      <?php 
      } 
      if($i%3!=0) 
      echo "</tr>"; 
      ?> 
     </table> 
+1

有關您更改內容的一些說明以及爲什麼? –

+0

查看if條件,如果項目達到3,它將打印close tr並開始新的tr。 –

0

試試這個==>

<table border="0"> 
     <?php 
     $i = 0; 
     foreach ($list_items as $item) { // there is 4 item 
      if ($i % 3 == 0) // for i=0,3,6,9 <tr> tag will open 
       echo "<tr>"; 

      ?> 
      <td class="text-center" style="width:83.14px; height:60.47px; font-size:0.6em"> 
       <?php echo $item['productId'] ?> 
       <br> 
       <br> 
       <?php echo $item['qty'] ?> 
      </td> 
      <?php 
      if ($i % 3 == 0) // for i=0,3,6,9 <tr> tag will close 
       echo "</tr>"; 

$i++; 
     } 
     ?> 
    </table>