Мне нужна помощь, чтобы понять это для логики цикла. Я точно знаю, что хочу сделать, но, к сожалению, никак не могу этого достичь.
Это мой код на данный момент.
<? 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'])) { }
, но это не сработало. Так что теперь я застрял.
Я понимаю, что это довольно неопределенный вопрос, потому что я не предоставил здесь слишком много кода; если нужно, я могу предоставить больше, но много чего происходит, поэтому я свел его к минимуму.
Заранее спасибо.