0

我正在使用 foreach 遍历图像。最多有四个图像,最少有 1 个图像。例如,如果有两个图像(= 两个循环),我想告诉 foreach 他需要再次循环两次并回显一些占位符图片。

这是我的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="" />

不要忘记 $users 可能有 x 个条目 (0-4)

4

4 回答 4

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'));

当然,除了这种可爱之外,您还可以使用在每次迭代foreach中打印的另一个。placeholder image HTML

更新:原来有一个更好的方法:

echo str_repeat('placeholder image HTML', count($users));

PHP 真的有太多的功能要记住。:)

于 2012-04-26T14:53:24.247 回答
0

使用计数器...

<?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 } ?>
于 2012-04-26T14:56:14.713 回答
0

这应该工作

$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 
}  
?>
于 2012-04-26T14:59:53.790 回答
0
<?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;
} ?>

如您所见,有十几种方法可以给这只猫剥皮。

于 2012-04-26T15:06:01.893 回答