PHP只增加一次

时间:2012-01-16 21:30:28

标签: php codeigniter-2

以下代码中$ 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++;
}

4 个答案:

答案 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