如何将foreach循环限制为三个循环

时间:2012-01-06 23:35:30

标签: php

如何限制这个循环..只是你循环..谢谢你的帮助

<?php
    foreach($section['Article'] as $article) :
?>
<tr>
    <td>
        <?php
            if ($article['status'] == 1) {
                echo $article['title'];
            } 
        ?>
    </td>
    <td>
        <?php
            if($article['status']== 1) {
                echo '&nbsp;'.$html->link('View', '/articles/view/'.$article['id']);
            }
        ?>
    </td>
</tr>
<?php 
    endforeach; 
?>

6 个答案:

答案 0 :(得分:78)

切割数组。

foreach(array_slice($section['Article'], 0, 3) as $article ):

答案 1 :(得分:26)

首先,准备你的数据

$i = 1;
$data = array();
foreach($section['Article'] as $article ) {
  if($article['status']== 1) {
    $article['link'] = $html->link('View', '/articles/view/'.$article['id']);
    $data[] = $article;
    if ($i++ == 3) break;
  }
}
$section['Article'] = $data;

然后显示它

<?php foreach($section['Article'] as $article ): ?>
<tr>
  <td><?php echo $article['title'] ?></td>
  <td>&nbsp;<?php echo $article['link']?></td>
</tr>
<?php endforeach ?>

答案 2 :(得分:9)

使用for()循环来执行此操作会更容易,但要回答这个问题:

<?
$i = 0;
foreach ($section['Article'] AS $article):
    if ($i == 3) { break; }
?>
...
<?
$i++;
endforeach
?>

答案 3 :(得分:8)

如果您的数组以数字方式编入索引,这将有所帮助

foreach($section['Article'] as $i => $article ):

    if ($i > 3) break;

否则 - 手动递增计数器:

$i = 0;
foreach($section['Article'] as $article ):

    if ($i++ > 3) break;

答案 4 :(得分:-2)

很棒的人必须尝试这个

target/universal/

答案 5 :(得分:-4)

如果你需要限制它,foreach循环将不是最好的。尝试使用for循环。

<?php

for(i=1; i<=3; i++)
{  
    $article = $section['Article'];


                     ?>
                    <tr>
                        <td><?php if($article['status']== 1){echo $article['title'];}  ?></td>
                        <td><?php  if($article['status']== 1){echo '&nbsp;'.$html->link('View', '/articles/view/'.$article['id']);}?></td>
                    </tr>
                    <?php } ?>

此代码将使文本循环3次。