对于Foreach内部的循环

时间:2015-11-02 09:04:45

标签: php for-loop foreach

我有一个foreach,它为每个用户遍历我的数据库。

    <?php
        foreach($users as $user) {
    ?>
        <tr>
            <td>
                <?php
                for ($i=1; $i < 52; $i++) {
                    echo $i;
                }
                ?>
            </td>
            <td>
                <?php echo $user['firstname']; ?>
            </td>
         </tr>
<?php
}
?>

这循环通过数据库并回显用户名,现在我试图在其中构建一个for循环,以便每个用户都有一个数字,我以一个非常基本的for循环为例(稍后会更改)。 问题是我为每个用户打印了所有数字,但我只想为用户打印一次。我该如何解决这个问题。

4 个答案:

答案 0 :(得分:5)

如果您想为用户提供唯一索引号,则不需要额外的循环。

只需添加增量变量:

并在现有循环中增加它。

<?php
$i=0;
foreach($users as $user) {
  ++$i; // For printing first user, it will be 1 not 0. 
  // Therefore, increment is placed before printing name.
?>
  <tr>
    <td><?php echo $i;?></td>
    <td><?php echo $user['firstname']; ?></td>
  </tr>
<?php
}
?>

答案 1 :(得分:1)

这应该足以实现你想要做的事情:

因为foreach()已经创建了一个循环,所以不需要你的for(),你只需要使用这个循环来增加一个值(这里称为$ i)然后显示它。

此外,您应该避免打开您的php标签数千次,以便更好地了解您的代码:)

<?php foreach ($users as $key => $user) : ?>
<tr>
    <td><?php echo $key; ?></td>
    <td><?php echo $user['firstname']; ?></td>
</tr>
<?php endforeach; ?>

答案 2 :(得分:0)

<?php
        $i=1;
        foreach($users as $user) {
    ?>
        <tr>
            <td>
                <?php
                echo $i++;
                ?>
            </td>
            <td>
                <?php echo $user['firstname']; ?>
            </td>
         </tr>
<?php
}
?>

答案 3 :(得分:-1)

尝试在foreach中使用Private Sub GMapControl1_Paint(sender As Object, e As PaintEventArgs) Handles GMapControl1.Paint Dim logo As Image = image.FromFile("C:\transparentLogo.png") e.Graphics.DrawImage(logo, GMapControl1.Width - logo.Width - 5, 5, logo.Width, logo.Height) End Sub

key