【发布时间】:2011-09-08 07:43:50
【问题描述】:
我需要一些帮助来弄清楚这个 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'])) { } 尝试了一些东西,但没有成功。所以现在我被卡住了。
我意识到这是一个相当模糊的问题,因为我没有在这里提供太多代码;如果需要,我可以提供更多,但有很多事情要做,所以我将其保持在最低限度。
提前致谢。
【问题讨论】:
-
试试
echo "<td>$i--$key</td>";看看表格...
标签: php arrays loops for-loop foreach