[英]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.