通常,當我投來關閉一個問題,重複,我不會發佈一個答案,但有幾個機會來教育這個問題,是很難在短短的意見來描繪。
如果要在回波線中增加,++
出現在$i
之前是非常重要的。如果++
出現在$i
之後,則回顯初始值$i
,然後發生增量。
假設我有你的結果集權的結構,這是我會怎麼寫的代碼片段:
代碼:(Demo)
$sql=[
(object)['jobseeker_name'=>'A','jobseeker_phone'=>'B','login_email'=>'C'],
(object)['jobseeker_name'=>'D','jobseeker_phone'=>'E','login_email'=>'F'],
(object)['jobseeker_name'=>'G','jobseeker_phone'=>'H','login_email'=>'I']
];
foreach($sql as $i=>$row){
echo "<tr>";
echo "<td>",++$i,"</td>";
echo "<td>$row->jobseeker_name</td>";
echo "<td>$row->jobseeker_phone</td>";
echo "<td>$row->login_email</td>";
echo "</tr>";
}
輸出:
<tr>
<td>1</td>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
<tr>
<td>2</td>
<td>D</td>
<td>E</td>
<td>F</td>
</tr>
<tr>
<td>3</td>
<td>G</td>
<td>H</td>
<td>I</td>
</tr>
此外,作爲最佳實踐的問題:
使用新的變量名來區分$sql
對象數組的每一行。如果您使用foreach($sql as $sql){
,那麼如果您需要再次訪問$sql
,則只能訪問$sql
的最後迭代子陣列。這是因爲foreach循環不斷覆蓋輸入數組。
使用逗號而不是點與echo進行連接。這是一個納米優化,但做這個習慣是沒有壞處的。
此外,作爲納米優化的問題,它是更快地使用「預增量」(++$i
),而不是在所有情況下的結局都是一樣的「後增量」($i++
)。 What's the difference between ++$i and $i++ in PHP?
附註:這會產生一行代碼。通過連接'。 「\ n」'echo'd(table)標籤內,它會產生乾淨的HTML。在查看HTML源代碼時,這實際上是一件好事。 –
[PHP Incrementing?]可能重複?(https://stackoverflow.com/questions/17386454/php-incrementing) – mickmackusa
更好的做法是不使用'$ sql'來表示每個「行」。如果您需要重新使用'$ sql'數組,那麼這將成爲一個問題 - 當循環結束時,曾經是包含行的子數組陣列的數組將會是包含最後一行的子數組。 – mickmackusa