Как бы остановить этот цикл 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="#" onclick="location.href='http://www.twitter.com/'.$result->from_user.''; return false;">'.$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;
}
Более подробную информацию о команде break
найти по адресу: http://php.net/manual/en/control-structures.break.php
Обновление: Как Кайл указал, если вы хотите, чтобы разорвать петлю лучше использовать for
нежели foreach
. По сути, у вас больше контроля над потоком, и вы получаете удобочитаемость. Обратите внимание, что вы можете сделать это только в том случае, если элементы в массиве являются смежными и индексируемыми (как указал полковник Спонс)
Код будет:
for($i=0;$i<3;$i++){
$result = $results->results[i];
//whatever you want to do here
}
Он более чистый, более защищенный от ошибок (все управляющие переменные находятся внутри оператора for
), и, просто прочитав его, вы узнаете, сколько раз он будет выполнен. следует по возможности избегать break
/continue
.
Ответ 2
- Объявить переменную перед циклом, инициализировать до 0.
- Приращение переменной в начале тела для каждого.
- Проверьте переменную в конце тела для каждого.
Вы должны быть осторожны с этим методом, потому что в теле для каждого тела может быть другой break
/continue
, но в вашем случае его нет, так что это сработает.
Ответ 3
Настройте некоторый счетчик $i
в начале цикла и break;
, когда он достигнет 3, например:
if ($i++ == 3)
break;
Ответ 4
foreach($results->results as $i => $result){
if($i==3) break;
//whatever you want to do here
}
Ответ 5
Просто когда условие выполнено, цикл автоматически завершается
<?php
$i=0;
foreach($data as $$key=$value){
echo $value;
$i++;
if($i==3) break;
} ?>