簡體   English   中英

每個foreach循環兩個項目

[英]Two items per foreach loop

抱歉,如果有人問過這個問題(我找不到答案),但是我正在使用PHP,並且正在構建一個滑塊,但是希望每個幻燈片有兩個圖像,而不是一個。 因此,從理論上講, foreach()每個必須包含兩個。

設置示例如下:

<?php foreach ($page->images as $image) : ?>
    <img src="<?php echo $image->url; ?>"/> 
<?php endforeach; ?>

我以為我可以做點算...

<?php $index = 0; foreach ($page->images as $image) : ?>
    <img src="<?php echo $image->url; ?>"/>
    <?php $index++; ?>
    <?php if ( $index % 2 == 0 && $index !=count($page->images) ) : ?>
    <li></li>
    <?php endif; ?>
<?php endforeach; ?>

但是我有點困惑,因為這會每2插入一次...不包括兩個foreach循環一次獲取的內容。

希望這有意義並且在此先感謝

為什么這么復雜? 使用簡單的for循環:

<?php for ($i=0; $i<count($page->images)-1; $i+=2) { ?>
    <img src="<?php echo $page->images[$i]->url; ?>"/> 
    <img src="<?php echo $page->images[$i+1]->url; ?>"/> 
<?php } ?>

甚至更優雅的是,一個do/while循環:

<?php $i=0; do { ?>
    <img src="<?php echo $page->images[$i++]->url; ?>"/> 
    <img src="<?php echo $page->images[$i++]->url; ?>"/> 
<?php } while ($i<count($page->images)) ?>

與使用foreach循環相比,這些方法還有另一個優點:您無需創建所有對象的副本。 如果這些對象不平凡,則可能會產生巨大的差異。

好的,我設法解決了這個問題……希望能對您有所幫助。

<div class="each-slide">
<?php $index = 0; foreach ($page->images as $image) : ?>
    <img src="<?php echo $image->url; ?>"/>
    <?php $index++; ?>
    <?php if ( $index % 2 == 0 && $index !=count($page->images) ) : ?>
        </div><div class="each-slide">
    <?php endif; ?>
<?php endforeach; ?>
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM