@inkyrein
Начинаю постигать WEB-программирование

Как в foreach присвоить значения первым трем элементам?

Привет всем.
Подскажите пожалуйста как можно применить правила (присвоить класс) только трем первым элементам из массива?
foreach ($colors as $item):?>	
	<img rel="<?=$item['id']?>" src="/<?=$item['image_path']?>" class="" />

В массиве много элементам и только первым трем нужно добавить класс, что бы потом его с css обработать?
  • Вопрос задан
  • 2635 просмотров
Пригласить эксперта
Ответы на вопрос 3
@inkyrein Автор вопроса
Начинаю постигать WEB-программирование
Было решение первое от berezuev которое дало логику, Спасибо тебе.
использовал конструкцию if($key <= 2)
Ответ написан
berezuev
@berezuev
#define TRUE FALSE
FanatPHP указал на множество косяков в прошлом ответе, сейчас на свежую башку переписал))
<?php
foreach ($colors as $key => $item){
  $tmp = "<img rel=\"%s\" src=\"/%s\" class=\"%s\" />";
  $class = (($key <= 2) ? "classname", "");
  printf($tmp, $item['id'], $item['image_path'], $class);
}
?>
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
если у нас, есть два класса, один для нормальных строк и один для первых трех, то если назвать их
class и class1 можно записать чуть короче:
<? foreach ($colors as $i => $item): ?>	
  <img rel="<?=$item['id']?>" src="/<?=$item['image_path']?>" class="class<?=($i < 3)?>" />
<? endforeach ?>


Но вообще отслеживать такие вещи ПХП-кодом - это заведомо ад.
А тебе нужно вот это: css-tricks.com/useful-nth-child-recipies
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы