2

配列をループするとき、配列に出力される最後の要素に対して別の css div スタイルを作成するにはどうすればよいですか。

for($i=0;$i<=count($productid);$i++){if($productrank[$i]>0 ){

<? if (($productid[$i] % 2 ) && !( last element of array){ echo '<div class="centerBoxContentsFeatured centeredContent back  vLine " style="width:50%;">';}
else { echo '<div class="centerBoxContentsFeatured centeredContent back " style="width:50%;">';} ?>
4

3 に答える 3

2

最後の $productid かどうかを確認するだけです

for(...)
{
    if ($i === (count ($productid) - 1))
        // Last one -> special CSS
    }
}

また、count()本当に必要がない場合は、FOR ループで使用しないでください。BEFORE に値を割り当てて使用するだけです。

$count_temp  = count ($productid);
for ($i = 0; $i < $count_temp; ++$i)

IFステートメントが最後の要素かどうかを確認する場合は、この $count_temp を再度使用します


コメントへの回答:

How would this same method get the first element?

if ($i === 0)

または

// Special CSS for $i = 0
// Start loop at 1 instead of 0
for ($i = 1; $i < $count_temp; ++$i)
于 2013-08-26T13:22:30.670 に答える
1

これは、CSS を使用して純粋に行うことができます:last-child。最新のすべてのブラウザでサポートされています。

div.centerBoxContentsFeatured:last-child {
    /* special styles for last */
}

実際に見てみましょう: http://jsfiddle.net/9y93j/1/

于 2013-08-26T13:39:23.937 に答える
0

このような:

if($productid[$i] ==  $productid[count($productid)-1]){
    //last element code here
} elseif (($productid[$i] % 2 ){
   //even row code here
} else {
   //odd row code here
}
于 2013-08-26T13:26:40.783 に答える