2

データベースから返された一連の配列がありますforeach。それらを通過するためにphpループを使用しています。5 つの配列を返し[1, 2, 3, 4, 5]、それぞれに (時間、ステータス、場所) が含まれている場合、すべての偶数配列を特定の div でスタイルし、各奇数配列を別の div でスタイルしたいと考えています。どうすればいいですか?

モジュロ演算子でループを使用すると仮定しています。

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

    } else {

    }
}

<?php foreach ($reservation as $seat) : ?>

配列 1、3、5 の場合。

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

配列 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 ?>
4

4 に答える 4

4

合理的に見えますが、次のとおりです。

background-color: #blue;

意味がありません。「#」は 16 進数の色の値の接頭辞として使用されますが、色の名前があるため、次のようにする必要があります。

background-color: blue;

また

background-color: #0000ff;

また、最新のブラウザー (つまりIE9+ ) では、代替スタイルの要素を CSS3 経由でのみ実現できることをご存知ですか?

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

小切手

于 2012-11-06T00:06:11.387 に答える
3

配列のすべての要素を列挙するために 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
    }
}

CSS クラスの「奇数」と「偶数」を div に設定し、別のファイルでスタイルを設定することをお勧めします。必要に応じて、CSS3 疑似クラス:nth-child(odd):nth-child(even).

于 2012-11-06T00:07:24.730 に答える
2

カウンターを保持している限り、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);
}

そして結果:

$ 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>
$ 

現時点では、全面的に利用できない可能性があるブラウザー機能に依存するよりも、明示的なクラスを使用する方が安全です。少なくとも誰もが基本的な CSS を理解しているようです。:)

.reservation {
  font-size: 20px;
  float: left;
}

.even {
  background-color: #blue;
}

.odd {
  background-color: #red;
}
于 2012-11-06T00:09:38.127 に答える
1

foreach にカウンターを配置するとどうなりますか。

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

<?php endforeach ?>
于 2012-11-06T00:08:53.097 に答える