Foreach 增量 php

Foreach increment in php

我有一个最多运行 50 次的 for 循环。在我的 codeigniter 视图中,我有

Year          Id
2015          1000001
2015          1000002

我已经使用以下命令获取数据库值

$data['get_data']=$this->get_data_model->getSeating();

我想在视图中将数据库值设置为sno、year、id。但是我的数据库只有 2 列。

    <?php $i=1; if(@$get_data)
      {
          foreach($get_data as $row):       
    ?>
    <tr>
        <td align="center" height="35"><?=$i?></td>
        <td align="left"><?=$row->year?></td>
        <td align="left"><?=$row->id?></td>
    </tr>
    <?php
      $i++;
      endforeach;
     }

这将只显示 2 行。因为我的数据库只有两个值。但是即使数据不在数据库中,我也需要分配 50 行。
例如在我的示例中,我想在我的视图中显示

一般是这样显示的

Sno    Year    ID
1       2015   100001
2       2015   100002

但是我想这样显示

Sno    Year    ID
1       2015   100001
2       2015   100002
3
4
5
......
50

这样怎么样:

<?php for($x=1; $x<51; $x++){?>
    <tr>
        <td align="center" height="35"><?=$x?></td>
        <td align="left"><?=$get_data[$x]->year?></td>
        <td align="left"><?=$get_data[$x]->id?></td>
    </tr><?php } ?>

您应该使用 for 而不是使用 foreach 循环。 像这样:

<?php
for(i=0;i <= 50;i++){
?>
  <tr>
    <td align="center" height="35"><?=$i?></td>
    <td align="left"><?=$row[$i]->year?></td>
    <td align="left"><?=$row[$i]->id?></td>
</tr>
<?php
}
?>

您还应该检查 $i 是否是 $row 的有效索引:

isset($row[$i]) ? <td align="left"><?=$row[$i]->year?></td> : '';

这是基本思路(如果你愿意,可以将它们放在一个循环中):

<?php 
$i=1; 
if(@$get_data) {
  foreach($get_data as $row):       
?>
    <tr>
      <td align="center" height="35"><?=$i?></td>
      <td align="left"><?=$row->year?></td>
      <td align="left"><?=$row->id?></td>
    </tr>
<?php
    $i++;
  endforeach;
}
  for($j=$i; $j<51;$j++): 
?>
    <tr>
      <td align="center" height="35"><?=$j?></td>
      <td align="left"></td>
      <td align="left"></td>
    </tr>
<?php
  endfor;
}
?>