每个3项的foreach()循环

时间:2013-03-13 17:43:50

标签: php

我想循环重复每3项结果。我正在阅读一个包含.jpg的文件夹,并希望将它们分组为3个。

所以结果看起来像这样:

<div>
   <img src="1.jpg"/>
   <img src="2.jpg"/>
   <img src="3.jpg"/>
</div>
<div>
   <img src="4.jpg"/>
   <img src="5.jpg"/>
   <img src="6.jpg"/>
</div>

4 个答案:

答案 0 :(得分:2)

假设您的数据总是精确地为3的倍数:

   for ($i = 0; $i < $numTotal; $i += 3) {
        echo '<div>
               <img src="' . $i + 1 . '.jpg"/>
               <img src="' . $i + 2 . '.jpg"/>
               <img src="' . $i + 3 . '.jpg"/>
              </div>';  
    }

答案 1 :(得分:2)

猜猜你已经获得了一系列文件:

    $count = 0;
    echo '<div>';
    foreach ($array as $images) {

         echo '<img src="'.$images.'.jpg" />';
         if ($count%3==0) echo '</div><div>'; 
         $count++;
    }
    echo '</div>';

答案 2 :(得分:0)

这是一个解决方案:

<?php

$my_array = array();

$my_array[] = "1.jpg";
$my_array[] = "2.jpg";
$my_array[] = "3.jpg";
$my_array[] = "4.jpg";
$my_array[] = "5.jpg";
$my_array[] = "6.jpg";


$content = "";

$i = 0;

foreach($my_array as $img_name)
    {

    if($i === 0)
        {       
                $content .= "<div>";
        }

        $content .= "<img src=\"" . $img_name . "\"/>"; 

    $i++;

    if($i === 3)
        {
            $content .= "</div>";   
            $i = 0; 
        }
    }

echo $content;

答案 3 :(得分:0)

将模数的值更改为更小/更大的

echo "<div>";
for($i=1;$i<=$maxImg;$i++) {
  echo "<img src=\"".${i}.".jpg\"/>";
  if(mod($i,3) == 0 && $i < $maxImg) {
    echo "</div>";
    echo "<div>";
    }
  }
echo "</div>";