Когда цикл через массив, как я могу создать другой стиль div css для последнего элемента, который будет выводиться в моем массиве.
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%;">';} ?>
Просто проверьте, является ли это последним $ productid
for(...) { if ($i === (count ($productid) - 1)) // Last one -> special CSS } }
Кроме того, НЕ используйте count()
в цикле FOR, если вам это действительно не нужно. Просто назначьте значение ДО и используйте его:
$count_temp = count ($productid); for ($i = 0; $i < $count_temp; ++$i)
И снова используйте этот $ count_temp, если оператор IF проверяет, является ли это последним элементом
Ответить на комментарий:
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)
Вы можете сделать это исключительно с помощью CSS, используя :last-child
. Он поддерживается всеми современными браузерами.
div.centerBoxContentsFeatured:last-child { /* special styles for last */ }
Смотрите его в действии: http://jsfiddle.net/9y93j/1/
Как это:
if($productid[$i] == $productid[count($productid)-1]){ //last element code here } elseif (($productid[$i] % 2 ){ //even row code here } else { //odd row code here }