ArrayAggregator::mergeRecursive()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 5
c 0
b 0
f 0
ccs 3
cts 3
cp 1
rs 10
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace CCT\Component\Collections\Interactors;
6
7
use CCT\Component\Collections\CollectionInterface;
8
9
class ArrayAggregator extends AbstractInteractor
10
{
11
    /**
12
     * Merge one or more arrays by a new set.
13
     *
14
     * @param array $elements One or more arrays
15
     *
16
     * @return array|CollectionInterface
17
     */
18 1
    public function merge(...$elements): array
19
    {
20 1
        $this->elements = array_merge($this->elements, ...$elements);
21
22 1
        return $this->elements;
23
    }
24
25
    /**
26
     * Merge one or more arrays recursively by a new set.
27
     *
28
     * @param array $elements One or more arrays
29
     *
30
     * @return array|CollectionInterface
31
     */
32 1
    public function mergeRecursive(...$elements): array
33
    {
34 1
        $this->elements = array_merge_recursive($this->elements, ...$elements);
35
36 1
        return $this->elements;
37
    }
38
39
    /**
40
     * Replace one or more arrays recursively by a new set.
41
     *
42
     * @param array $elements One or more arrays
43
     *
44
     * @return array|CollectionInterface
45
     */
46 1
    public function replace(...$elements): array
47
    {
48 1
        $this->elements = array_replace($this->elements, ...$elements);
49
50 1
        return $this->elements;
51
    }
52
53
    /**
54
     * Replace recursively one or more arrays recursively by a new set.
55
     *
56
     * @param array $elements One or more arrays
57
     *
58
     * @return array|CollectionInterface
59
     */
60 1
    public function replaceRecursive(...$elements): array
61
    {
62 1
        $this->elements = array_replace_recursive($this->elements, ...$elements);
63
64 1
        return $this->elements;
65
    }
66
67
    /**
68
     * Pushes one or more array to the end of the array.
69
     *
70
     * @param array ...$elements One or more arrays
71
     *
72
     * @return array
73
     */
74 1
    public function append(...$elements): array
75
    {
76 1
        array_push($this->elements, ...$elements);
77
78 1
        return $this->elements;
79
    }
80
81
    /**
82
     * Pushes one or more array to the beginning of the array.
83
     *
84
     * @param array ...$elements One or more arrays
85
     *
86
     * @return array
87
     */
88 1
    public function prepend(...$elements): array
89
    {
90 1
        array_unshift($this->elements, ...$elements);
91
92 1
        return $this->elements;
93
    }
94
}
95