我创建了可用座位,下面带有 循环:
<?php
$seats = 7;
for ($i=1; $i <= $seats; $i++) {
?>
<div class='col-xs-6'>
<div class='well text-center' id='<?php echo $i ?>'>
Seat No: <?php echo $i ?>
</div>
</div>
<?php
}
?>
如果$i
变量与 <中的$k
变量匹配,我想添加 预订的 类em>预订座位 以下数组元素:
$booked_seat = array('1','4','5','6','7');
结果:
Array
(
[0] => 1
[1] => 4
[2] => 5
[3] => 6
[4] => 7
)
所以我这样做了:
<?php
$seats = 7;
for ($i=1; $i <= $seats; $i++) {
?>
<div class='col-xs-6'>
<div class='well text-center <?php echo ($i == $booked_seat[$i-1]) ? 'booked' : '' ?>' id='<?php echo $i ?>'>
Seat No: <?php echo $i ?>
</div>
</div>
<?php
}
?>
我得到偏移量错误,因为$booked_seat
与$seats
循环不太一样,如何限制循环以使其不会偏移?
谢谢你
答案 0 :(得分:1)
试试这个:
$seats = 7;
for ($i=1; $i <= $seats; $i++) {
?>
<div class='col-xs-6'>
<div class='well text-center <?php echo (in_array($i, $booked_seat)) ? "booked" : "" ?>' id='<?php echo $i ?>'>
Seat No: <?php echo $i ?>
</div>
</div>
<?php
}
?>
警告:代码未经测试。
答案 1 :(得分:1)
您可以随时翻转$booked_seat
数组,然后使用isset()
测试数组元素是否存在。像这样:
<?php
$seats = 7;
$booked_seat = array('1','4','5','6','7');
$booked_a = array_flip($booked_seat);
for ($i=1; $i <= $seats; $i++) {
printf("seat: %d%s\n", $i, isset($booked_a[$i]) ? " booked" : "");
}
(这是我的测试,您可以添加HTML以适应。)
答案 2 :(得分:0)
您应该使用sizeof()方法。
所以:
$ num_seats = sizeof($ seat);
然后用这个for循环。
for($ i = 0; $ i&lt; $ num_seats; $ i ++){ //码 }