Sadece bir kez, her tarih göster

2 Cevap php

Pekala, bu kesinlikle kolay bir soru olmalı ve ben bunun için özür dilerim.

Ben sadece benim kendi bir cevap gelmek için kullanmak doğru arama terimleri bulma başarısız olursa ben de özür dilerim. Denedim, ama PHP akıcılık benim eksikliği tür beni arama emmek yapar.

Ben sadece bir kez bir foreach döngüsü içinde her tarihini göstermek için basit bir yol arıyorum. Öyle gibi verilerin döngü ediyorum:

<?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>";
 ?>

Ve her öğenin tarihi içeren, bu yüzden aynı tarihte birden çok kez alıyorum. Ben sadece her tarih bir kez a la http://daringfireball.net gösterilen olmasını istiyorum.

Ben CodeIgniter'ı ve SimplePie kütüphane kullanıyorum, böylece tüm verilerin yerine db depolanan doğrudan çekti ediliyor. Ben tarih zaten kullanılmış ise ifadesi kontrol etmek eğer bir saniye dahil olabilir yapmak için bir yol düşünemiyorum, ama ben bu yürütmek için nasıl bilmiyorum.

Ben PHP için oldukça yeni ve ben gerçekten sadece verilen bir çözüm var daha fazla bilgi edinmek için arıyorum.

Eğer verebilecek herhangi bir yardım büyük olurdu!

2 Cevap

Eğer en son kullanılan tarih neydi hatırlayamıyorum, ve farklı yalnızca yazdırmak gerekiyor. Sen gibi bir şey deneyebilirsiniz:

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

(Ve kullanarak HTML-kodlamak başlıkları ve linkleri unutma htmlspecialchars.)

Eğer gibi görünüyor böylece sadece döngü önce, veya döngü başına bir kere, bir kere gösterilmesini tarihini istediğiniz anlamına mı:

Date 1
- item 1
- item 2
- etc...

Date 2
- item 1
- item 2
- etc...

Eğer formatı açıklayabilir misiniz? Tarih geçerli olduğunu, her $ i için bir kez gösterilmesi gerektiğini şu anda neden olur.