下面的当前循环产生的结果是这样的:
<?php
foreach ($response->items->item as $value) {
echo("<img src='".$value->imageUrl."' width=200><br>");
echo($value->description."<br>");
echo($value->url."<br>");
};
?>
//结果
<1st row>
(image)
description
(url)
</end 1st row>
<2nd row>
(image)
description
(url)
</end 2nd row>
<3rd row>
(image)
description
(url)
</end 3rd row>
我需要完成的是循环结果,使每个元素从左到右水平。例如
<1st col> <2nd col> <3rd col>
(image) (image) (image)
description description description
(url) (url) (url)
</end 1st col> </end 2nd col> </end 3rd col>
条件应该是:
- 如上所示,每一行只能有 3 列,如右上所示。
- 当有更多元素时,每个元素将显示在下一行,就像它在第一行的显示方式一样。
什么是元素?
一个元素包括:
(image)
description
(url)
有多少元素?
最多可达20个或更多。
end of question
好了,各位,问题结束。希望得到帮助,这是有效的。
最佳答案
你可以做很多事情来完成它。最好的方法(我认为..)是创建一个 UL 并打破每三个元素:
<ul>
<?php
$i = 0;
foreach ($response->items->item as $value) : ?>
<li<?php if ( $i % 3 == 0 ) echo ' class="break"' ?>>
<?php echo "<img src='".$value->imageUrl."' width=200><br>"; ?>
<?php echo $value->description ?>
</li>
<?php $i++; // Increment counter
endforeach ?>
</ul>
然后需要在.break元素中指定这个列表必须是横排的,并指定换行:
<style>
ul li {
float:left;
}
ul li.break {
clear: right;
}
</style>
关于php - 如何在 PHP 中执行水平循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002138/