Несколько строк с PHP foreach? - PullRequest
0 голосов
/ 10 апреля 2011

Я пытаюсь создать таблицу с 4 строками из вызова foreach.

Моя проблема в том, что в результате я получаю каждый идентификатор двадцать раз в одном столбце.

Я использую этот код:

<table  width="80%" border="0" cellpadding="10px">

   <?php foreach (array_chunk($items, 4) as $row) { ?>

      <?php     
         $i = 0;    
            foreach ($items as $item):      
            $class = null;      
            if ($i++ % 2 == 0) {            
            $class = ' class="altrow"';         
      } ?>

     <tr
        <?php echo $class;?>
     >  

  <?php foreach ($row as $item){ ?>         
     <td>
        <?php echo htmlentities ($item['Item']['id']); ?>
     </td>
  <?php } ?> 
<?php endforeach; ?>    
</tr> 
<?php } ?> 
</table>

Есть идеи, как я могу получить каждый идентификатор только один раз?

1 Ответ

2 голосов
/ 10 апреля 2011

Вы увеличиваете $i на каждом $item, а не на $row

Это исправление, которое вы ищете?

Редактировать: Mikel имеет ваше исправление, добавьте его, чтобы исправить ошибку строки (типично для меня заметить, что первый eck!)

<table  width="80%" border="0" cellpadding="10px">
<?php 
    $i = 0;
    $chunkedarray = array_chunk($items, 4);
    foreach ($chunkedarray as $row) {      
        $class = null;      
        if ($i++ % 2 == 0)           
            $class = ' class="altrow"';
        echo "<tr ".$class.">";
        foreach ($row as $item){ 
            echo "<td>";
            echo htmlentities ($item['Item']['id']); 
            echo "</td>";
        }
    echo "</tr>";
    }?>  
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...