} $result = []; foreach ($feeds as $feed) { $channel = $feed->getElementsByTagName('channel')->item(0); // the whole channel element $channelTitle = $channel->getElementsByTagName('link')->item(0)->nodeValue; // channel title $items = $feed->getElementsByTagName('item'); // All items in this feed foreach ($items as $key) { $title = $key->getElementsByTagName('title')->item(0)->nodeValue; $link = $key->getElementsByTagName('link')->item(0)->nodeValue; $description = $key->getElementsByTagName('description')->item(0)->nodeValue; $pubDate = $key->getElementsByTagName('pubDate')->item(0)->nodeValue; $item = new Item(); $item->setMedia($channelTitle); $item->setTitle($title); $item->setLink($link); $item->setDescription($description); $item->setPubDate($pubDate); $result[] = $item; } } usort($result, 'compareByDate'); function compareByDate(Item $a, Item $b) { $a = strtotime($a->getPubDate()); $b = strtotime($b->getPubDate()); if ($a == $b) { return 0; }