0

わかりました、これは非常に簡単な質問に違いありません。申し訳ありません。

また、自分で答えを出すために使用する適切な検索用語を見つけられなかった場合もお詫び申し上げます。試してみましたが、PHP に堪能ではないため、検索が苦手です。

foreach ループ内で各日付を 1 回だけ表示する簡単な方法を探しています。私は次のようにデータをループしています:

<?php
  echo "<ul>";
  foreach($rss_items as $i){
   if($i->get_feed()->get_title() == 'Twitter (no @ replies)'){
   echo "<li>";
   echo $i->get_date();
   echo "<a href='" .$i->get_link()."'>Twitter</a>";
   echo $i->get_title();
   echo "</li>";
   }
   elseif($i->get_feed()->get_title() == 'Pinboard (jpcody)'){
   echo "<li>";
   echo $i->get_date();
   echo "<a href='" .$i->get_link()."'>Pinboard</a>";
   echo $i->get_title();
   echo "</li>";
   }
   elseif($i->get_feed()->get_title() == 'Entries at Church Marketing Sucks by Joshua Cody'){
   echo "<li>";
   echo $i->get_date();
   echo "<a href='" .$i->get_link()."'>Church Marketing Sucks</a>";
   echo "<a href='" .$i->get_link()."'>" . $i->get_title() . "</a>";
   echo $i->get_description();
   echo "</li>";
   }
   elseif($i->get_feed()->get_title() == 'Flickr remove first paragraph'){
   echo "<li>";
   echo $i->get_date();
   echo "<a href='" .$i->get_link()."'>Flickr</a>";
   echo "<a href='" .$i->get_link()."'>" . $i->get_title() . "</a>";
   echo $i->get_description();
   echo "</li>";
   }
  }
  echo "</ul>";
 ?>

各アイテムには日付が含まれているため、同じ日付を複数回取得しています。http://daringfireball.netのように、各日付を一度だけ表示したいと思います。

私は CodeIgniter と SimplePie ライブラリを使用しているため、すべてのデータはデータベースに保存されるのではなく、直接取得されます。日付が既に使用されているかどうかを確認するために2番目のifステートメントを含めることができると思いますが、これを実行する方法がわかりません。

私は PHP にかなり慣れていないので、ソリューションを提供するだけでなく、それ以上のことを学びたいと思っています。

あなたが与えることができるどんな助けも素晴らしいでしょう!

4

2 に答える 2

3

最後に使用した日付を覚えておき、異なる場合にのみ印刷する必要があります。次のようなものを試すことができます:

$previous_date = null;
foreach ($rss_items as $item) {
    if ($item->get_date() != $previous_date) {
        $previous_date = $item->get_date();
        echo '<li>' . $previous_date . '</li>';
    }
    ...
}

(そして、 を使用してタイトルとリンクを HTML エンコードすることを忘れないでくださいhtmlspecialchars。)

于 2009-10-03T07:55:21.707 に答える
0

次のように、日付を 1 回、ループの前、またはループごとに 1 回だけ表示したいということですか。

日付 1
- アイテム 1
- アイテム 2
- など...

日付 2
- アイテム 1
- アイテム 2
- など...

フォーマットを明確にしていただけますか?現時点では、有効な $i ごとに日付を 1 回表示する必要があります。

于 2009-10-03T07:53:45.513 に答える