From f2e1af7cb4b3a6854102af3073df2c0c067cbb51 Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Sat, 9 Jul 2016 22:43:31 +0200 Subject: [PATCH] Implemented search processor. --- src/engine/Api/V1/Processors/Search.php | 27 ++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/engine/Api/V1/Processors/Search.php b/src/engine/Api/V1/Processors/Search.php index df04ee9e..a4a774c1 100644 --- a/src/engine/Api/V1/Processors/Search.php +++ b/src/engine/Api/V1/Processors/Search.php @@ -15,6 +15,31 @@ namespace EA\Engine\Api\V1\Processors; class Search implements ProcessorsInterface { public static function process(array &$response) { - + if (!isset($_GET['q'])) { + return; + } + + $searchedResponse = []; + $keyword = (string)$_GET['q']; + + foreach ($response as $entry) { + if (self::_recursiveArraySearch($entry, $keyword) !== false) { + $searchedResponse[] = $entry; + } + } + + $response = $searchedResponse; + } + + protected static function _recursiveArraySearch(array $haystack, $needle) { + foreach ($haystack as $key => $value) { + $currentKey = $key; + + if ($needle === $value || (is_array($value) && self::_recursiveArraySearch($value, $needle) !== false)) { + return $currentKey; + } + } + + return false; } }