我有一个代码可以从文件夹中提取图像并在网站上显示这些图像。问题是我只想显示最多12张图像(随机)。由于我不熟悉PHP,我希望有人可以在这里提供帮助。
我的代码是:
<?php
foreach($this->images as $image)
{
$path = ($image->remote == 1) ? $image->path : $this->ipbaseurl.$this->settings->imgpath;
echo '<img src="'.$path.$image->fname.$image->type.'" alt="'.$this->p->street_address.'" width="320" style="margin: 10px 5px 0px 5px;"/> ';
}
?>
答案 0 :(得分:0)
foreach($this->images as $count => $image) {
if ($count >= 12) { break; }
甚至更早,取决于您如何设置$ this-&gt;图片,您可以将其减少为仅包含12个条目的数组
答案 1 :(得分:0)
<?php
$count= 0;
foreach($this->images as $image)
{
if($count > 12)
break;
$path = ($image->remote == 1) ? $image->path : $this->ipbaseurl.$this->settings->imgpath;
echo '<img src="'.$path.$image->fname.$image->type.'" alt="'.$this->p->street_address.'" width="320" style="margin: 10px 5px 0px 5px;"/> ';
$count++;
}
?>
答案 2 :(得分:0)
他们有很多方法可以做到这一点,你必须限制foreach循环,实现它的一种方法是在下面。
在下面的代码中我放$i=0;
所以计数从零开始然后在foreach循环中我把增量放在i上并加上限制并破坏代码,如果条件成功if (++$i == 11) break;
<?php
$i = 0;
foreach($this->images as $image)
{
if (++$i == 11) break;
$path = ($image->remote == 1) ? $image->path : $this->ipbaseurl.$this->settings->imgpath;
echo '<img src="'.$path.$image->fname.$image->type.'" alt="'.$this->p->street_address.'" width="320" style="margin: 10px 5px 0px 5px;"/> ';
}
?>
答案 3 :(得分:0)
如果要从图像阵列中显示12个随机图像,可以尝试这样的方法:
if(count($this->images) > 12) {
$randomKeys = array_rand($this->images, 12);
} else {
$randomKeys = array_rand($this->images, count($this->images));
}
foreach($randomKeys as $key) {
$image = $this->images[$key];
$path = ($image->remote == 1) ? $image->path : $this->ipbaseurl.$this->settings->imgpath;
echo '<img src="'.$path.$image->fname.$image->type.'" alt="'.$this->p->street_address.'" width="320" style="margin: 10px 5px 0px 5px;"/> ';
}
从数组中选择12个随机键,然后循环键。如果图像数组中少于12个项目,则使用数组的所有项目,但是按随机顺序。