Как я остановил бы этот цикл foreach после 3 повторений?

Вот цикл.

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>";
23
задан meagar 19 May 2010 в 13:35
поделиться

4 ответа

с команда break .

Однако вам не хватает скобки.

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

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

Дополнительная информация о команде break : http://php.net/manual/en/control-structures.break.php

Обновление: как Kyle указал, что если вы хотите разорвать цикл, лучше использовать для , а не foreach . По сути, у вас больше контроля над потоком, и вы получаете удобочитаемость. Обратите внимание, что вы можете сделать это, только если элементы в массиве смежные и индексируемые (как указал полковник Спонс )

Код будет следующим:

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

Он чище, он более защищен от ошибок (все управляющие переменные находятся внутри оператора for ), и, просто прочитав его, вы знаете, сколько раз он будет выполнен. break / continue по возможности следует избегать.

62
ответ дан 29 November 2019 в 00:53
поделиться
  • Объявить переменную перед циклом, инициализировать значение 0.
  • Увеличить переменную в начале тела for-each.
  • Проверить переменную в конце тела для каждого.
    • Если это 3, перерыв .

Вы должны быть осторожны с этой техникой, потому что может быть другой break / continue в теле for-each, но в вашем случае его нет, так что это будет Работа.

7
ответ дан 29 November 2019 в 00:53
поделиться
foreach($results->results as $i => $result){ 
   if($i==3) break; 
   //whatever you want to do here 
}
2
ответ дан 29 November 2019 в 00:53
поделиться

Увеличьте некоторый счетчик $ i в начале цикла и break; , когда он достигнет 3, например:

if ($i++ == 3)
    break;
2
ответ дан 29 November 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: