Php 环路输出控制

Php 环路输出控制,php,for-loop,Php,For Loop,当for循环达到某个条件时,是否可以对其进行控制 说明: 我正在从数据库检索图像集合的文件夹路径:这些图像然后通过for循环打印出来。我需要做的是控制这些图像在页面上的显示方式(例如,每行5个图像)。 到目前为止,for循环在一行中打印出40个图像,这使您可以滚动到页面的最右边 是否有控制for循环的解决方案,例如,在5次成功循环后,回显a?这里有一个粗俗的想法: for ($i = 1; $i < $rows; $i++) { $path = $image[$i]; $folder_pa

当for循环达到某个条件时,是否可以对其进行控制

说明:

我正在从数据库检索图像集合的文件夹路径:这些图像然后通过for循环打印出来。我需要做的是控制这些图像在页面上的显示方式(例如,每行5个图像)。 到目前为止,for循环在一行中打印出40个图像,这使您可以滚动到页面的最右边

是否有控制for循环的解决方案,例如,在5次成功循环后,回显a
?这里有一个粗俗的想法:

for ($i = 1; $i < $rows; $i++) {
$path = $image[$i];
$folder_path = $path['folder_path']; //since it's an array
echo '<img src="' . $folder_path . '">';

//pseudocode
if ($i == 5) {
echo '<br>';
...continue with the loop
}
}
($i=1;$i<$rows;$i++)的
{
$path=$image[$i];
$folder\u path=$path['folder\u path'];//因为它是一个数组
回声';
//伪码
如果($i==5){
回声“
”; …继续循环 } }

我知道伪代码看起来很疯狂,但这正是我需要做的:循环x个实例,添加一些内容,然后继续。

相同的循环。插入
的条件是($i%5==0),这意味着(如果此元素是他的系列的第五个元素)将对您有用

<?php
for ($i = 1; $i < $rows; $i++) {
  $path = $image[$i];
  $folder_path = $path['folder_path']; 
  echo '<img src="' . $folder_path . '">';

  if ($i % 5 == 0) {
    echo '<br>';
  }
}

根据@m69的评论,最好的选择是使用
%
(模数)比较运算符。正如秘书长所解释的:

$a%$b返回$a除以$b的剩余部分

因此,在你的情况下:

for ($i = 0; $i < $rows; $i++) {

    $path = $image[$i];
    $folder_path = $path['folder_path']; //since it's an array
    echo '<img src="' . $folder_path . '">';

    if ($i % 5 == 0) { //do this if $i divided by 5 has a remainder of 0
        echo '<br>';
    }

}
($i=0;$i<$rows;$i++)的
{
$path=$image[$i];
$folder\u path=$path['folder\u path'];//因为它是一个数组
回声';
如果($i%5==0){//如果$i除以5的余数为0,则执行此操作
回声“
”; } }

作为补充说明,您应该在for循环的开头将
$i
设置为0,假设
$rows
设置为查询返回的行数。将其设置为1将阻止它遍历最后一行,因为
$i
==40
(假设为40行),因此将不会
<40

使用模运算符,如在
$i%5==0
中,每五次迭代执行一次操作。请稍微解释一下您在代码中执行的操作。模在这里所做的是在回显图像之前添加
,结果保持不变:图像打印在一行中,但它们被向下推,由于使用了模量。似乎在回响阵列时,图像被视为一个元素。我试着用foreach,但得到了同样的结果。使用fetchAll()检索文件夹路径,然后将相关数组位置存储在一个变量中。不过,我使用css(添加了一个类和float:left)解决了这个问题。我还删除了包装IMG的,现在它起作用了。如果你已经解决了这个问题,没有一个答案能完全回答你的问题,请要么:1)发布你自己的答案并接受它作为最好的答案,或者2)考虑删除你的问题。因为线程有答案,所以我不能删除它。我将问题标记为删除。尽管我解决了我的问题,但我的解决方案并没有回答这个问题:即,用for循环将图像分开(就像
一样)。我对string进行了测试,结果就像你们说的一样。它似乎对它从文件夹中回显的图像不起作用。