<?php
-function filterByGenre($origGames, $genre)
+function filterByAge($origGames, $age)
{
$filtered = [];
foreach ($origGames as $game) {
- if (array_search($genre, $game->genres) !== false) {
+ if ($age == $game->contentRating) {
+ $filtered[] = $game;
+ }
+ }
+ return $filtered;
+}
+
+function filterByGenre($origGames, $genre, $remove = false)
+{
+ $filtered = [];
+ foreach ($origGames as $game) {
+ if ($remove) {
+ if (array_search($genre, $game->genres) === false) {
+ $filtered[] = $game;
+ }
+ } else {
+ if (array_search($genre, $game->genres) !== false) {
+ $filtered[] = $game;
+ }
+ }
+ }
+ return $filtered;
+}
+
+function filterByLetter($origGames, $letter)
+{
+ $filtered = [];
+ foreach ($origGames as $game) {
+ $gameLetter = strtoupper($game->title{0});
+ if (!preg_match('#^[A-Z]$#', $gameLetter)) {
+ $gameLetter = 'Other';
+ }
+ if ($letter == $gameLetter) {
$filtered[] = $game;
}
}
return $filtered;
}
+function filterBySearchWord($origGames, $searchWord)
+{
+ $filtered = [];
+ foreach ($origGames as $game) {
+ if (stripos($game->title, $searchWord) !== false) {
+ $filtered[] = $game;
+ }
+ }
+ return $filtered;
+}
+
function filterLastUpdated($origGames, $limit)
{
$games = array_values($origGames);
usort(
$games,
function ($gameA, $gameB) {
- return $gameB->rating->average - $gameA->rating->average;
+ return ($gameB->rating->rank - $gameA->rating->rank) * 100;
}
);
return array_slice($games, 0, $limit);
}
+
+function sortByTitle($games)
+{
+ usort(
+ $games,
+ function ($gameA, $gameB) {
+ return strcasecmp($gameA->title, $gameB->title);
+ }
+ );
+ return $games;
+}
?>