●RSSをソート
RSSをソートする方法を考えてみます。
まず、RSSをパースする必要があります。
これには、Zend_FeedやMagpieRSSなどを使えば簡単に出来ます。
分からない方は、このブログにも書いてありますので、参考にしてください。
一度配列に格納しなおす方法を使っているので、ソート機能のないウェブサービスのXMLデータをソートする場合にも使えます。
--
--
パースしたRSSデータを以下のように配列に格納しなおします。
$data[] = array('date' => 67, 'title' => 'A', 'desc'=>'D1'); $data[] = array('date' => 86, 'title' => 'B', 'desc'=>'D2'); $data[] = array('date' => 85, 'title' => 'C', 'desc'=>'D3'); $data[] = array('date' => 98, 'title' => 'D', 'desc'=>'D4'); $data[] = array('date' => 86, 'title' => 'E', 'desc'=>'D5'); $data[] = array('date' => 67, 'title' => 'F', 'desc'=>'D6');
ここではサンプルとして単純データを追加していますが、
実際には、各RSSパーサーのアクセスメソッドがあるはずなので、それを使って配列に追加していくことになります。
次にソート関数を用意します。
uasort
このページにmultisortという関数が紹介されているので、これを使うのが一番簡単です。
print "<pre>";print_r(multisort($data, "'date'", true));print "</pre>\n";
こうすると、dateをキーとして日付の古い順にソートできます。
trueをfalseにすれば、新しい順にソートできます。
また、ソートキー名をtitleにすれば、タイトルの降順、昇順ソートも出来るので、好きなようにソートできますね。
--
Comments
コメント入力は停止しています
海外からと思われるコメントスパムが横行しているため、全記事のコメント入力を停止しています。メッセージのある方は、ホームページの一番下に連絡欄がありますので、そちらからお願いします。