如何在php foreach循环中替换div元素

如何在php foreach循环中替换div元素,php,javascript,html,Php,Javascript,Html,我从数据库中得到了一组数组,我使用phpforeach循环遍历它们。如果我返回5个数组[1,2,3,4,5],每个数组都包含一个(时间,状态,位置),我想用特定的div设置所有偶数数组的样式,用不同的div设置每个奇数数组的样式。我该怎么做 我假设我会使用带模运算符的循环 for ($i = 1; $i <= $count; $i++) if ($i % 2 == 0) { } else { } } 用于($i=1;$i) 如果是数组2,4 <div

我从数据库中得到了一组数组,我使用php
foreach
循环遍历它们。如果我返回5个数组
[1,2,3,4,5]
,每个数组都包含一个(时间,状态,位置),我想用特定的div设置所有偶数数组的样式,用不同的div设置每个奇数数组的样式。我该怎么做

我假设我会使用带模运算符的循环

for ($i = 1; $i <= $count; $i++)
    if ($i % 2 == 0) {

    } else {

    }
}
用于($i=1;$i)
如果是数组2,4

<div style="font-size:20px; background-color: #blue; float:right;">
 <?php echo $seat['location']; ?>
 <?php echo $seat['time']; ?> 
 <?php echo $seat['status']; ?> </div>


<?php endforeach ?>

看似合理,但:

background-color: #blue;
没有意义。使用“#”作为十六进制颜色值的前缀,而您有一个颜色名称,因此您需要:

background-color: blue;

另外,您是否知道,在现代浏览器中(例如),交替样式化的元素可以仅通过CSS3实现,例如

div:nth-child(odd) { background-color: blue; }

选中

您不必使用foreach循环来枚举数组的所有元素:

for ($i=1; $i <= $count; $i++) {
    $seat = $reservation[$i-1];
    if ($i % 2 == 0) {
        // Do your 2 and 4
    } else {
        // Do your 1, 3 and 5
    }
}

for($i=1;$i如果你把计数器放在foreach里会怎么样

$count = 0;
<?php foreach ($reservation as $seat) : ?>
if ($count % 2 == 0){
  //even div 
}else {
  // odd div
}
$count++;

<?php endforeach ?>
$count=0;
如果($count%2==0){
//偶数除法
}否则{
//单数div
}
$count++;

只要您保留一个计数器,您的模测试甚至可以在foreach循环中在线完成:

$ cat divloop.php 
<?php

$a=array( "one", "two", "three", "four", "five" );

$fmt="<div class='reservation %s'>%s</div>\n";

$count=0;

foreach ($a as $item) {
  printf($fmt, ++$count % 2 == 0 ? "even" : "odd", $item);
}

您坚持将$i从1开始有什么原因吗?我的意图是编写类似于OP的原始代码+1的示例,但请说明这是一个CSS3解决方案,只要所讨论的数组已排序,就可以了
for ($i=1; $i <= $count; $i++) {
    $seat = $reservation[$i-1];
    if ($i % 2 == 0) {
        // Do your 2 and 4
    } else {
        // Do your 1, 3 and 5
    }
}
$count = 0;
<?php foreach ($reservation as $seat) : ?>
if ($count % 2 == 0){
  //even div 
}else {
  // odd div
}
$count++;

<?php endforeach ?>
$ cat divloop.php 
<?php

$a=array( "one", "two", "three", "four", "five" );

$fmt="<div class='reservation %s'>%s</div>\n";

$count=0;

foreach ($a as $item) {
  printf($fmt, ++$count % 2 == 0 ? "even" : "odd", $item);
}
$ php divloop.php 
<div class='reservation odd'>one</div>
<div class='reservation even'>two</div>
<div class='reservation odd'>three</div>
<div class='reservation even'>four</div>
<div class='reservation odd'>five</div>
$ 
.reservation {
  font-size: 20px;
  float: left;
}

.even {
  background-color: #blue;
}

.odd {
  background-color: #red;
}