如何在 3 次迭代后停止此 foreach 循环?

php
2022-08-30 15:29:58

这是循环。

foreach($results->results as $result){
    echo '<div id="twitter_status">';
    echo '<img src="'.$result->profile_image_url.'" class="twitter_image">';
    $text_n = $result->text; 
    echo "<div id='text_twit'>".$text_n."</div>";
    echo '<div id="twitter_small">';
    echo "<span id='link_user'".'<a href="http://www.twitter.com/'.$result->from_user.'">'.$result->from_user.'</a></span>';
    $date = $result->created_at;

    $dateFormat = new DateIntervalFormat();

    $time = strtotime($result->created_at);

    echo "<div class='time'>";

    print sprintf('Submitted %s ago',  $dateFormat->getInterval($time));

    echo '</div>';

    echo "</div>";
    echo "</div>";

答案 1

使用命令。break

但是,您缺少一个括号。

$i=0;
foreach($results->results as $result){
//whatever you want to do here

$i++;
if($i==3) break;
}

有关该命令的详细信息,请访问:http://php.net/manual/en/control-structures.break.phpbreak

更新:正如Kyle所指出的,如果你想打破循环,最好使用而不是.基本上,您可以更好地控制流程并获得可读性。请注意,仅当数组中的元素是连续的且可索引的时,您才能执行此操作(如上校 Sponsz 所指出的)forforeach

代码为:

for($i=0;$i<3;$i++){
$result = $results->results[i];
//whatever you want to do here
}

它更干净,它更防错(控制变量都在语句中),只要阅读它,你就知道它将被执行多少次。 / 如果可能,应避免使用。forbreakcontinue


答案 2
  • 在循环之前声明一个变量,初始化为 0。
  • 在 for-each 的正文开头添加变量。
  • 在 for-each 的正文末尾检查变量。
    • 如果是 3,.break

你必须小心使用这种技术,因为每个身体中可能还有其他/,但在你的情况下没有,所以这将起作用。breakcontinue


推荐