在PHP中的Foreach增量

时间:2015-03-02 09:34:52

标签: php codeigniter

我有一个for循环,最多运行50次。在我的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

3 个答案:

答案 0 :(得分:1)

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

<?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;
}
?>

答案 1 :(得分:0)

这样怎么样:

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

答案 2 :(得分:0)

您应该使用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> : '';