Passed
Push — master ( a7279d...feb425 )
by Andrey
11:45
created

Arr::transform()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
c 0
b 0
f 0
dl 0
loc 7
rs 10
cc 2
nc 2
nop 2
1
<?php
2
3
namespace Helldar\LaravelLangPublisher\Support;
4
5
use Closure;
6
use Helldar\LaravelLangPublisher\Contracts\Arr as ArrContract;
7
8
use function array_filter;
9
use function array_keys;
10
use function array_shift;
11
use function array_unique;
12
use function array_values;
13
14
final class Arr implements ArrContract
15
{
16
    /**
17
     * Getting unique values.
18
     *
19
     * @param array $array
20
     *
21
     * @return array
22
     */
23
    public function unique(array $array): array
24
    {
25
        return array_values(array_filter(array_unique($array)));
26
    }
27
28
    /**
29
     * Getting the first element of an array.
30
     *
31
     * @param array $array
32
     *
33
     * @return mixed
34
     */
35
    public function first(array $array)
36
    {
37
        return array_shift($array);
38
    }
39
40
    /**
41
     * Getting array keys.
42
     *
43
     * @param array $array
44
     *
45
     * @return array
46
     */
47
    public function keys(array $array): array
48
    {
49
        return array_keys($array);
50
    }
51
52
    /**
53
     * Transforming an array using the callback function.
54
     *
55
     * @param array $array
56
     * @param \Closure $callback
57
     *
58
     * @return array
59
     */
60
    public function transform(array $array, Closure $callback): array
61
    {
62
        foreach ($array as &$value) {
63
            $value = $callback($value);
64
        }
65
66
        return $array;
67
    }
68
}
69