php foreach中断表
Im使用表来存储动态加载的内容。这是一个预订表,这将是响应。我想做的是,如果有超过5列,将每个表行分成两行,以便移动版本能够在屏幕上显示 我相信这可以通过扩展我已经拥有但无法实现的功能来实现 以下是我当前的代码:php foreach中断表,php,foreach,tablerow,Php,Foreach,Tablerow,Im使用表来存储动态加载的内容。这是一个预订表,这将是响应。我想做的是,如果有超过5列,将每个表行分成两行,以便移动版本能够在屏幕上显示 我相信这可以通过扩展我已经拥有但无法实现的功能来实现 以下是我当前的代码: <table> <tr> <?php foreach ($hostel->getAvailableDates() as $date): ?> <th><?php echo $date-&
<table>
<tr>
<?php foreach ($hostel->getAvailableDates() as $date): ?>
<th><?php echo $date->getDayOfTheWeek(); ?></th>
<?php endforeach ?>
</tr>
<tr>
<?php foreach ($hostel->getAvailableDates() as $date): ?>
<td>
<?php if($date->getAvailable()) { ?>
<b class="avail tick">Available</b>
<?php } else { ?>
<b class="avail cross">Unavailable</b>
<?php }?>
</td>
<?php endforeach ?>
</tr>
</table>
但是到目前为止运气不好。看看mod操作符。它会给你你需要的
如果($count%$max\u loop==0)我更喜欢重新组织数据:
<?php
$availDates = array();
foreach ($hostel->getAvailableDates() as $date) {
$availDates[] = $date;
}
$maxCols = 5;
$chunked = array_chunk( $availDates, $maxCols );
?>
<table>
<?php
foreach ($chunked as $chunk) {
?><tr>
<?php foreach ($chunk as $date): ?>
<th><?php echo $date->getDayOfTheWeek(); ?></th>
<?php endforeach; ?>
</tr>
<tr>
<?php foreach ($chunk as $date): ?>
<td>
<?php if($date->getAvailable()) { ?>
<b class="avail tick">Available</b>
<?php } else { ?>
<b class="avail cross">Unavailable</b>
<?php }?>
</td>
<?php endforeach; ?>
</tr><?php
}
?>
</table>
可用
不可用的
如果getAvailableDates返回的值是数组,则可以使用for循环而不是foreach,并检查当前索引是否为5的倍数,这样就不必跟踪count变量
$avDates = $hostel->getAvailableDates();
for ($i = 0; $i < count($avDates); $i++) {
$date = $avDates[$i];
//do your staff
//if multiple of five add another tr
if ($i % 5 == 0) {
}
}
$avDates=$hostel->getAvailableDates();
对于($i=0;$i
我希望这对您有所帮助。谢谢
<?php
$avDates = $hostel->getAvailableDates();
echo "<table><tr>";
foreach($avDates as $i=>$date){ {
if ($i == $max_loop) {
echo "</tr><tr>";
}
echo "<td>".($date->getAvailable() ? '<b class="avail tick">Available</b>' : '<b class="avail cross">Unavailable</b>')."</td>";
}
echo "</tr></table>";
?>
<?php
$avDates = $hostel->getAvailableDates();
echo "<table><tr>";
foreach($avDates as $i=>$date){ {
if ($i == $max_loop) {
echo "</tr><tr>";
}
echo "<td>".($date->getAvailable() ? '<b class="avail tick">Available</b>' : '<b class="avail cross">Unavailable</b>')."</td>";
}
echo "</tr></table>";
?>