Я намереваюсь перечислить последние 2 заголовка в новостной ленте, где данный тег является чем-то.
Предполагая, что getCategories () и getValues () являются рабочими методами.(они есть).
Может ли кто-нибудь помочь создать лучший код, чем этот?
(я даже не уверен, будет ли работать этот foreach внутри логики ...);
$feedUrl = 'http://www.abc.org/?feed=rss2';
$feed = Zend_Feed_Reader::import($feedUrl);
$lastNews = array();
foreach ($feed as $key=>$entry)
{
if (in_array('tag A', $entry->getCategories()->getValues()))
{
while ($key < 2)
{
$lastNews['title'] = $entry->getTitle();
$lastNews['link'] = $entry->getLink();
}
}
}
ОБНОВЛЕНИЕ: Если я удалю часть while, я получу ВСЕ записи канала с соответствующим заголовком и ссылкой.Хорошо.
Однако я хочу добиться всего лишь ДВУХ записей с соответствующими заголовками и ссылками.
Добавить - две записи должны быть самыми последними.Но я прыгаю по порядку работы foreach, я дам самые последние из них в качестве первых ключей.(однако не уверен).
ОБНОВЛЕНИЕ II:
На основе @Dereleased Я знаю, что это:
(Я только что добавил []часть)
$okEntries = 0;
foreach ($feed as $key => $entry) {
if ($okEntries >= 2) {
break;
}
if (in_array('Tag A', $entry->getCategories()->getValues()))
{
$lastNews[]['title'] = $entry->getTitle();
$lastNews[]['link'] = $entry->getLink();
++$okEntries;
}
}
Я получаю это:
array(4) {
[0]=>
array(1) {
["title"]=>
string(65) "test title A"
}
[1]=>
array(1) {
["link"]=>
string(33) "http://www.linkA.com"
}
[2]=>
array(1) {
["title"]=>
string(80) "Test title B"
}
[3]=>
array(1) {
["link"]=>
string(33) "http://www.linkB.com"
}
}
Теперь массив [0] и [1] - это группа заголовков ссылок, а массив [2] и[3] являются второй группой массивов, как их можно разделить на две группы?
Заранее спасибо, MEM