如何将if语句添加到for循环?

时间:2013-05-30 16:55:15

标签: php if-statement for-loop

我有一个工作的PHP脚本,我需要soem帮助修改。

这是我的剧本:

<? $images = $product->images;
for ($i = 4; $i <= 8; $i++): ?>
<li>
<a href='<?= $images[$i]->getThumbnailPath(0,0) ?>' class="swatch_lbox_gallery" rel="gal">
<img src="<?= $images[$i]->getThumbnailPath(138, 0) ?>"/>
</a>   
<p><?= $images[$i]->title ?><br/>
<?= $images[$i]->description ?></p>
</li>
<? endfor; ?>

当有4个以上的图像时它确实有效,否则我会收到错误。我试图添加一个if语句,所以它隐藏如果没有第四个图像,但我只是无法让它工作。 任何帮助将不胜感激。如果我需要添加更多细节,请告诉我。

添加细节 - 我从4开始,因为我需要图像4-8

谢谢!

斯蒂芬

3 个答案:

答案 0 :(得分:2)

if (count($images) >= 4) for ($i = 4; $i <= 8; $i++):

答案 1 :(得分:1)

试试这个:

<? 
    $images = $product->images;
    $startOnImage = 4;
    $endOnImage = 8;

    foreach($images as $key => $image)
    {
        if($key<$startOnImage){ continue; }
        if($key>$endOnImage){ break; }

        echo '<li>';
        echo '<a href="' . $image->getThumbnailPath(0,0) . '" class="swatch_lbox_gallery" rel="gal">';
        echo '<img src="' . $image->getThumbnailPath(138, 0) . '"/>';
        echo '</a>';

        echo '<p>' . $image->title . '<br/>';
        echo $image->description . '</p>';
        echo '</li>';

     }

答案 2 :(得分:0)

for ($i = 4; $i <= min(8, count($images)-1); $i++) :

-1是必要的,因为数字数组索引从0开始,而不是1.因此$images[4]要求count($images)至少为5。