0

私はこのコードを持っています:

foreach($html->find('ul.results') as $article) {
            $item['date']     = $article->find('span.result_date', 0)->plaintext;
            $item['title']    = $article->find('a.result_title', 0);
            $item['text'] = $article->find('span.result_text', 0)->plaintext;
            $item['read'] = $article->find('a.read_more', 0);
            $articles[] = $item;
    }
        foreach ($articles as &$item) {
            while ($i < 5) {
                echo $item['date']."&nbsp;&nbsp;&nbsp;";
                echo $item['title'].'</br>';
                echo $item['text']."&nbsp;";
                echo $item['read'].'</br></br>';
            $i++;
        }
    }

そして、私は結果をエコーし​​ようとしています。現在、2番目のforeachは何もしていません。同じ記事を5つ表示しているだけです。記事の形式は、日付、タイトル、テキスト、続きを読む。最初の5つの$articlesをエコにしようとしていますが、print_rではない適切な方法を見つけることができません。

4

1 に答える 1

1

for each内のループ全体は、最初の要素で5回ループし、次の要素に移動して5回ループします。

次のようなものを試してください。

$i = 0;
foreach ($articles as $item){
    echo items stuff...
    $i++;
    if ($i == 5) break;
}
于 2012-07-22T04:25:46.320 に答える