質問: PEARのXML_RSSについてので質問です。 複数のサイトのRSSを読み込み、一覧表示するページを作っています。 下記の記述だと一つのRSSしか表示できませんでした、 どうすれば$rssに他のRSSも混ぜる事ができますでしょうか。 宜しくお願い致します。 ); /** * RSSファイルをパースする */ $rss->parse(); echo "¥">Do You PHP?のヘッドライン¥n"; echo "¥n"; /** * getItemsメソッドを使用して全item要素を取得し、表示する */ foreach ($rss->getItems() as $item) { echo "" . mb_convert_encoding($item['title'], mb_internal_encoding(), 'auto') . "¥n"; } echo "¥n"; ?>
回答: 混在で、ということですね、失礼しました。 では以下の手順ではいかがでしょうか。 $aUrlList = array("URL1","URL2",...); foreach($aUrlList as $key => $value){ $rss =& new XML_RSS($value); ここまでは同じですが、取得した値を別の配列に格納します。 その時、日付を同じ形式にしてください。 例: $array[$key]['date'] = タイムスタンプ等 $array[$key]['title'] = タイトル $array[$key]['url'] = URL こうすることで $array[0]['date'] = タイムスタンプ1 $array[0]['title'] = タイトル1 $array[0]['url'] = URL1 $array[1]['date'] = タイムスタンプ2 $array[1]['title'] = タイトル2 $array[1]['url'] = URL2 ~以下略~ の形式となります。 出来上がった配列を、以下の関数でソートしてあげてください。 usort($array , "cmp"); function cmp($a , $b){ return $a['date'] >= $b['date']; } $array の内容を、cmp という function に渡し、date で比較をし、ソートします。 比較を逆にすれば、並びも逆になります。 こうすると、$array の値がソートされます。