每组5张图像后添加<br/>

时间:2015-08-20 18:43:10

标签: php image

好的,我目前正在使用它:

<?php
$dirname = "cards/collecting/";
$images = glob($dirname."*.png");
foreach ($images as $image) {
$title = pathinfo($image);
echo '<img class="deck" src="'.$image.'" alt="'. $title['filename'].'" title="'.$title['filename'].'">';
}
?>

这会从文件夹中提取一堆小图像并显示它们。它工作得很好,但是我想在每个第5张图像之后有一个左右,因此它不会延伸到显示图像的整个div。我不确定我需要添加什么才能做到这一点。

提前致谢!

2 个答案:

答案 0 :(得分:2)

使用索引,您可以编写&lt; br /&gt;每次索引+ 1是5的倍数:索引4,9,14等...请注意我使用$ i =&gt;在foreach中获得$ i的价值。

<?php
$dirname = "cards/collecting/";
$images = glob($dirname."*.png");
foreach ($images as $i=>$image) {
    $title = pathinfo($image);
    echo '<img class="deck" src="'.$image.'" alt="'. $title['filename'].'" title="'.$title['filename'].'">';
    if(($i+1)%5 == 0) echo '<br/>';
}
?>

答案 1 :(得分:2)

最简单的方法是使用array_chunk

  

array_chunk

     

array array_chunk(array $ array,int $ size [,bool $ preserve_keys = false])

     

将数组块化为具有大小元素的数组。最后一个块可能包含少于大小的元素

代码示例:

$dirname = "cards/collecting/";
$images = glob($dirname."*.png");
$grp = array_chunk($images, 5, true);
foreach ($grp as $items) {
    echo '<div class="item_grp">';
    foreach ($items as $image) {
        $title = pathinfo($image);
        echo '<img class="deck" src="'.$image.'" alt="'. $title['filename'].'" title="'.$title['filename'].'">';
    }
    echo '</div>';
}