【问题标题】:For loop inside ForeachForeach 内的 For 循环
【发布时间】:2016-02-02 02:57:18
【问题描述】:

我有一个 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 循环为例(稍后会更改)。 问题是我为每个用户打印了所有号码,但我只想为用户打印一次号码。我该如何解决这个问题。

【问题讨论】:

  • foreach($users as $i =&gt; $user)
  • 要么在 foreach 中做一个计数器,要么回显键。

标签: php for-loop foreach


【解决方案1】:

如果你想要用户唯一的索引号,你不需要额外的循环。

只需添加一个增量变量:

并在现有循环中增加它。

<?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
}
?>

【讨论】:

    【解决方案2】:

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

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

    此外,您应该避免打开您的 php 标签一万次,以便更好地查看您的代码:)

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

    【讨论】:

    • 通过 PHP 解析 HTML 是一种开销。您可以简单地将 PHP 嵌入到 HTML 中。
    • 是的,你可以,但是如果你必须打开和关闭你的 PHP 标签数百次,这不是好方法
    【解决方案3】:
    <?php
            $i=1;
            foreach($users as $user) {
        ?>
            <tr>
                <td>
                    <?php
                    echo $i++;
                    ?>
                </td>
                <td>
                    <?php echo $user['firstname']; ?>
                </td>
             </tr>
    <?php
    }
    ?>
    

    【讨论】:

      【解决方案4】:

      尝试在 foreach 中使用key

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-26
        • 2012-07-19
        • 1970-01-01
        • 2018-01-14
        • 1970-01-01
        相关资源
        最近更新 更多