StopWordsFilter   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 34
rs 10
c 0
b 0
f 0
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A getFilterResults() 0 17 4
1
<?php
2
/**
3
 * User: Jens
4
 * Date: 12-3-2017
5
 * Time: 23:12
6
 */
7
8
namespace CloudControl\Cms\search\filters;
9
10
use CloudControl\Cms\search\Filter;
11
12
abstract class StopWordsFilter implements Filter
13
{
14
    protected $tokens;
15
    protected $stopWords = array();
16
17
    /**
18
     * StopWordsFilter constructor.
19
     * @param array $tokens
20
     */
21
    public function __construct($tokens)
22
    {
23
        $this->tokens = $tokens;
24
    }
25
26
    /**
27
     * @return array
28
     */
29
    public function getFilterResults()
30
    {
31
        foreach ($this->stopWords as $stopWord) {
32
            foreach ($this->tokens as $field => $tokens) {
33
                if (isset($tokens[$stopWord])) {
34
                    $tokens[$stopWord] = null;
35
                    unset($tokens[$stopWord]);
36
                    $tokens = array_filter($tokens);
37
                    asort($tokens);
38
                }
39
40
                $this->tokens[$field] = $tokens;
41
            }
42
        }
43
        $this->tokens = array_filter($this->tokens);
44
        asort($this->tokens);
45
        return $this->tokens;
46
    }
47
}