2015-11-02 167 views
2

我得到了一個foreach循環通過我的數據庫爲每個用戶。For循環內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循環非常基本的(這將在以後進行更改)。 問題是我爲每個用戶打印出所有數字,但我只想爲用戶打印一次該號碼。我該如何解決這個問題。

+2

'的foreach($用戶爲$ I => $用戶)' –

+3

要麼做一個計數器在foreach中,或回聲的關鍵。 – Daan

回答

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

Downvoter,請解釋原因.... – Pupil

+0

編輯之前是錯的 – Himanshu

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

嘗試使用key中的foreach

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

這應該足以實現你想要做什麼:

您的(),因爲的foreach不需要( )已經創建了一個循環,你只需要使用這個循環來增加一個值(這裏稱爲$ i)然後顯示它。

你也應該避免打開你的PHP標記爲更好的可視性數萬次到你的代碼:)

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

通過PHP解析HTML是一種開銷。您可以簡單地將PHP嵌入到HTML中。 – Pupil

+0

是的,你可以,但如果你必須打開和關閉數百倍的PHP標籤,這不是好的方法 – Nirnae