articles = array(); foreach ($NEWS_ENTRIES as $article) { $this->articles[] = new NewsItem( $article['title'], $article['id'], $article['published'], $article['updated'], $article['category'], $article['link'], $article['content'], isset($article['newsImage']) ? $article['newsImage'] : NULL, isset($article['intro']) ? $article['intro'] : $article['content'] ); } } /** * @param int $max [optional] * @return array */ public function getLatestArticles($max = 5) { return array_slice($this->articles, 0, $max); } /** * @param array $categories * @param int $limit * @return array */ public function getArticlesForCategories(array $categories, $limit = 5) { $result = array(); foreach ($this->articles as $item) { /** * @var NewsItem $item */ $articleCategories = array(); foreach ($categories as $category) { if ($item->hasCategory($category)) { $result[] = $item; } } } return array_slice($result, 0 , $limit); } }