Я использую foreach для прокрутки изображения. Максимально четыре изображения и минимум 1 изображение. Например, если есть два изображения (= две петли), я хочу сказать, что для него требуется повторить цикл два раза и повторить некоторые снимки-заполнители.
Heres my foreach:
<?php foreach($users as $k => $v) {?> <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" /> <?php } ?>
Выходы (две петли):
<img src="/images/user_0.jpg" alt="" title="" /> <img src="/images/user_1.jpg" alt="" title="" />
но новый скрипт должен выводить:
<img src="/images/user_0.jpg" alt="" title="" /> <img src="/images/user_1.jpg" alt="" title="" /> <img src="/images/user_placeholder.jpg" alt="" title="" /> <img src="/images/user_placeholder.jpg" alt="" title="" />
не забывайте, что возможно, что $ пользователи могут иметь x записей (0-4)
Используйте array_fill
чтобы заполнить массив с таким количеством элементов, сколько необходимо (поскольку все они будут идентичными), а затем распечатать их.
<?php foreach($users as $k => $v) {?> <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" /> <?php } ?> <?php echo implode('', array_fill(0, count($users), 'placeholder image HTML'));
Конечно, вместо этой cuteness вы также можете использовать другой foreach
который печатает placeholder image HTML
foreach
placeholder image HTML
на каждой итерации.
Обновление: выясняется, что есть еще лучший метод:
echo str_repeat('placeholder image HTML', count($users));
PHP действительно имеет слишком много функций для запоминания. 🙂
Используйте счетчик …
<?php $counter = 0; foreach($users as $k => $v) {?> <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" /> <?php $counter++; } while{$counter < 4) {?> <img src="/images/user_placeholder.jpg" alt="" title="" /> <?php } ?>
это должно работать
$count = 1; foreach($users as $k => $v) { ?> <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" /> <?php $count++; } for ($i = $count; $i <= 4; $i++) { ?> <img src="/images/user_placeholder.jpg" alt="" title="" /> <?php } ?>
<?php $placeholders = array(); foreach($users as $k => $v) {?> <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" /> <?php $placeholders[] = '<img src="/images/user_placeholder.jpg" alt="" title="" />'; } foreach ($placeholders as $placeholder){ echo $placeholder; } ?>
Как вы можете видеть, существует дюжина способов скинуть этот конкретный кот.