Отображение 5 элементов массива на строку в таблице HTML - PullRequest
1 голос
/ 16 февраля 2012

У меня есть множество продуктов, и мне нужно отобразить их по 5 единиц в строке.Как я могу это сделать, потому что теперь, если я делаю

<?php foreach($data as $entries) : ?>
<td><?php echo $entries->name; ?>
<?php endforeach; ?>

, это не работает.Должен ли я сделать счетчик?

Ответы [ 5 ]

5 голосов
/ 16 февраля 2012

Что-то вроде:

$data = range(1, 17);
for($count = 0; $count < count($data);)
{
    echo "<tr>\n";
    for($i = 0; $count < count($data) && $i < 5; $count++, $i++) {
        echo "\t<td>$data[$count]</td>\n";
    }
    for(; $i < 5; $i++) {
        echo "\t<td>-</td>\n";
    }
    echo "</tr>\n";
}

Вывод

<tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    <td>5</td>
</tr>
<tr>
    <td>6</td>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    <td>10</td>
</tr>
<tr>
    <td>11</td>
    <td>12</td>
    <td>13</td>
    <td>14</td>
    <td>15</td>
</tr>
<tr>
    <td>16</td>
    <td>17</td>
    <td>-</td>
    <td>-</td>
    <td>-</td>
</tr>
2 голосов
/ 16 августа 2013

Возможно, немного более читабельным?

<table>
    <tr>
<?php 
$data = range(1, 17);
$counter = 1;

foreach($data as $value){
    if (!(($counter++ ) % 5)){
        echo "<td>$value</td></tr><tr>";
    }else{
        echo "<td>$value</td>";
    }
}
?>
</table>

Produces :</p> <pre>1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

1 голос
/ 16 февраля 2012

Надеюсь, это поможет

echo"<table>";
        echo"<tr>";
for($i = 0; $i < count($productsArray); $i++){
    if($i % 4 ==0){
        echo"</tr><tr>"
     }

    echo "<td>$products[$i]; </td>";

}
0 голосов
/ 05 февраля 2018
  <div class="container-fluid">
             <?php
            $count = 1;
            foreach ($home_products as $pro_img) {
                 $parent_cat_link = base_url('category/view/'.$pro_img['category_id']);
                if ($count % 6 == 1) {
                    $class="cap1";
                    $class1="cap";
                    ?>
            <div class="row">
                <?php } 
                if($i %2 == 0){?>
                <div class="col-md-2 col-sm-4 <?php if($count >=6){ echo $class; } else{ echo 'cap'; } ?> ">
                    <div class="">
                        <a href="<?php echo $parent_cat_link; ?>"> <img src="<?php echo base_url() . 'uploads/category/' . $pro_img['image_name'] ?>" class="img-responsive" alt="logo"></a>
                    </div>
                </div><?php }else{ ?>
                <div class="col-md-2 col-sm-4 <?php if($count >=6){ echo $class1; } else{ echo 'cap1'; } ?>">
                    <div class="">
                        <a href="<?php echo $parent_cat_link; ?>"> <img src="<?php echo base_url() . 'uploads/category/' . $pro_img['image_name'] ?>" class="img-responsive" alt="logo"></a>
                    </div>
                </div><?php } $i++;
                if ($count % 6 == 0) {
                ?> </div> <?php } $count++; 
                } if ($count % 6 != 1) echo "</div>"; ?>



        </div>
0 голосов
/ 26 ноября 2012

Вот простой счетчик, который также легко изменить, если требования к макету изменятся

<?php
//initialize a counter
$count = 0;
foreach($data as $entries){
//if it's divisible by 5 then echo a new row
if($count > 0 && $count % 5 == 0){
    echo("</tr><tr>\n");
}
$count++;
?>  

<td>
    <?php 
    // We're also creating a new cell for each item 
    echo $entries->name; ?>
</td>
<?php
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...