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

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

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

В массиве много элементам и только первым трем нужно добавить класс, что бы потом его с css обработать?
  • Вопрос задан
  • 2633 просмотра
Пригласить эксперта
Ответы на вопрос 4
@inkyrein Автор вопроса
Начинаю постигать WEB-программирование
Было решение первое от berezuev которое дало логику, Спасибо тебе.
использовал конструкцию if($key <= 2)
Ответ написан
mcdb
@mcdb
То ли программист, то ли видение...
<?php for ($i = 0, $ca = count($colors); $i < $ca; $i++): ?>
<img rel="<?= $colors[$i]['id'] ?>" src="/<?=$colors[$i]['image_path']?>" class="common_class <?=($i < 3 ? 'extra_class' : '')?>" />
<?php endif; ?>
Ответ написан
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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 16:03
5000 руб./за проект
25 апр. 2024, в 16:02
40000 руб./за проект
25 апр. 2024, в 15:58
5000 руб./за проект