我需要一些帮助找出这个循环逻辑。我确切地知道我想要做什么,但我似乎无法接近它。帮助找出一些for循环逻辑
这是我目前的代码。
<? foreach($ticket_details as $ticket): ?>
<tr class="tableBG" style="background-color: #fc6">
<td align="center"><?= $ticket['name']; ?></td>
<td align="center"><?= $ticket['price']; ?></td>
<td align="center"><?= $ticket['priceWithinAllocation']; ?></td>
<? for($i = 0; $i < $event_details['number_of_days']; $i++): ?>
<?
foreach($ticket['days'] as $key => $value)
{
if($value == date('Y-m-d', strtotime($event_details['startDate'] . "+ $i day")))
{
echo "<td>✓</td>";
}
else
{
echo "<td>--</td>";
}
}
?>
<? endfor; ?>
<td align='center'>
<input type='button' class='remove' id='remove[ticket][<?= $ticket['ticketID'] ?>]' value='REMOVE' />
</td>
</tr>
<? endforeach; ?>
这实际上并不奏效。
我的票阵列看起来像这样:
[5] => Array
(
[ticketID] => 5
[eventID] => 1
[name] => Thu
[price] => 500
[priceWithinAllocation] => 250
[day] => 2011-08-25
[days] => Array
(
[0] => 2011-08-25
)
)
[6] => Array
(
[ticketID] => 6
[eventID] => 1
[name] => Wed+Thu
[price] => 900
[priceWithinAllocation] => 110
[day] => 2011-08-24
[days] => Array
(
[0] => 2011-08-24
[1] => 2011-08-25
)
)
当$ticket['days']
包含不止一个值,它打印出太多空( - )<td>
。我不确定如何在不打印超出需要的情况下执行循环。下面是此代码发生的一个屏幕截图:
我尝试了一些与if(count($ticket['days'])) { }
的东西,但没有解决。所以现在我被卡住了。
我意识到这是一个相当模糊的问题,因为我没有在这里提供太多的代码;如果需要的话,我可以提供更多,但有很多事情正在进行,所以我把它保持在最低限度。
在此先感谢。
尝试'回声 “$ I - $关键”;'看看表... – k102