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 循环中使用。只需在之前分配一个值并使用它:

$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

您可以使用: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 回答