foreach循环有多个步骤

时间:2013-02-02 13:36:31

标签: php mysql pdo phpmyadmin

我使用PDO从数据库获取结果,然后使用foreach循环显示数据。

我的代码是

$result1=$objPage->getGallery($id);
foreach($result1 as $row)
{

    echo "pic1=" . $row['pic']; 
    echo "pic2=" . $row['pic']; 
    echo "pic3=" . $row['pic']; 
    echo "<br>";    
}

实际上,我想在一行中显示三个图片名称,然后显示3个名称。

但现在它打印一个名字3次。

4 个答案:

答案 0 :(得分:2)

做这样的事情:

$result1=$objPage->getGallery($id);
$count = 0;
foreach($result1 as $row)
{
    echo "pic" . $count + 1 . "=" . $row['pic']; 
    if( $count % 3 == 2 )
    {
        echo "<br>";    
    }
    $count++;
}

<强>信息

  1. Modulo %

答案 1 :(得分:2)

首先,准备你的数据

$data = $objPage->getGallery($id);
$data = array_chunk($data,3);

然后输出

<table>
<? foreach($data as $chunk): ?>
  <tr>
<? foreach($chunk as $row): ?>
    <td><img src="<?=$row['pic']?>"></td>
<? endforeach ?>
  </tr>
<? endforeach ?>
</table>

答案 2 :(得分:1)

您可以使用外部标记,如下所示:

$flag = 0;
$result1=$objPage->getGallery($id);
foreach($result1 as $row) {
    echo "pic" . ($flag + 1) . "=" . $row['pic'];
    if( $flag % 3 == 0 )
        echo "<br>";
    $flag++;   
}

答案 3 :(得分:1)

您可以按照其他人的建议使用模数,但这种更紧凑的方法怎么样?

$result1 = $objPage->getGallery($id);
$separators = array('', '', '<br/>');
foreach ($result1 as $index => $row) {
    echo 'pic' . ($index % 3) . '=' . $row['pic'] . $separators[$index % 3];
}