Как разорвать цикл foreach после того, как он зациклится заданное количество раз вместо всего массива в PHP?

Возможный дубликат:
ограничение сколько раз запускается цикл в php

Я пытаюсь разорвать цикл foreach, читая ленту твитов - после трех твитов. Кто-нибудь поможет с кодом, который мне нужно дополнить тем, который у меня уже есть.

<?php
function getTweets($Username) {
$feedURL = "http://twitter.com/statuses/user_timeline.rss?screen_name=" . $username;

$content = file_get_content($feedURL);
$tweets = new SimpleXMLElement ($content);

foreach ($tweets->channel->item as $tweet) {
    echo "<ul>";
    echo "<li>$tweet->description<br />$tweet->pubDate</li>";
    echo "</ul>";
}
?>
}

Заранее благодарю.


person LungstarBDE    schedule 31.08.2012    source источник
comment
Добавьте параметр count в URL   -  person René    schedule 31.08.2012


Ответы (3)


Наверное, вот так.

$max_count = 3;
$counter = 0;
foreach ($tweets->channel->item as $tweet) {
    echo "<ul>";
    echo "<li>$tweet->description<br />$tweet->pubDate</li>";
    echo "</ul>";
    if($counter == $max_count){
        break;
    }
    $counter++;
}
person Bob    schedule 31.08.2012
comment
Я попробовал этот, и он сработал. Большое спасибо. - person LungstarBDE; 31.08.2012

Вы можете использовать break

foreach ($tweets->channel->item as $tweet) {
    echo "<ul>";
    echo "<li>$tweet->description<br />$tweet->pubDate</li>";
    echo "</ul>";
    if( someCondition )
    {
        break;
    }
}
person Fluffeh    schedule 31.08.2012
comment
Второй ответ сработал. Все равно спасибо. - person LungstarBDE; 31.08.2012

Я предполагаю, что элементы проиндексированы:

foreach ($tweets->channel->item as $i => $tweet) {
    echo "<ul>";
    echo "<li>$tweet->description<br />$tweet->pubDate</li>";
    echo "</ul>";
    if ($i == 2) {
        break;
    }
}
person Ivan Hušnjak    schedule 31.08.2012
comment
Хотя мне казалось, что это лучшее решение, оно не совсем сработало. Если только я что-то не так сделал. Я хотел бы осторожно попробовать это снова. - person LungstarBDE; 31.08.2012
comment
когда вы var_dump($i); то, что вы получаете? int(0), int(1) ... или что-то еще? Просто используйте решение @Bob - оно должно работать - person Ivan Hušnjak; 31.08.2012