以下代码中$ i的值始终为2.它似乎是第一次递增,但只是那个时间。有什么想法吗?
foreach ($records as $row){
$i = 1;
$i++
if ($i % 2 != 0){
$trClass = 'odd';
}else{
$trClass = 'even';
}
echo '<tr class="' . $trClass . '"><td>' .
anchor("admin/delete/$row->id", 'delete') . '</td><td>' .
anchor("admin/edit/$row->id", 'Edit') . '</td>';
foreach ($row as $key => $value){
echo '<td>' . $value . '</td>';
}
echo '</tr>';
$i++;
}
答案 0 :(得分:8)
每次循环时,您都会将其重新分配给1
。而是在循环外部初始化它。
$i = 1;
foreach ($records as $row){
/*
...
*/
$i++;
}
我也看到你在循环开始和结束时都在增加。我假设你只想做一次(最后只保留一个;在开头删除一个)。
答案 1 :(得分:2)
您的代码存在逻辑错误,因为它在循环的每次迭代中声明$ i。
这就是你要做的:
在每次迭代中声明$ i = 1,然后递增$ i。
所以在每次迭代中,你总是得到$ i = 2。
在foreach循环之外声明$ i = 1并像这样增加$ i:
$i = 1;
foreach ($records as $row){
if ($i % 2 != 0){
$trClass = 'odd';
}else{
$trClass = 'even';
}
echo '<tr class="' . $trClass . '"><td>' . anchor("admin/delete/$row->id", 'delete') . '</td>
<td>' . anchor("admin/edit/$row->id", 'Edit') . '</td>';
foreach ($row as $key => $value){
echo '<td>' . $value . '</td>';
}
echo '</tr>';
$i++;
}
答案 2 :(得分:1)
以这种方式开始
$i = 1;
foreach ($records as $row){
$i++;
...
答案 3 :(得分:1)
请在$i = 1;
foreach