MapperHelper   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 0
dl 0
loc 40
ccs 0
cts 17
cp 0
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A to() 0 4 1
A from() 0 4 1
A replaceKeys() 0 12 3
1
<?php
2
3
/**
4
 * @author    Flipbox Factory
5
 * @copyright Copyright (c) 2017, Flipbox Digital
6
 * @link      https://github.com/flipbox/transform/releases/latest
7
 * @license   https://github.com/flipbox/transform/blob/master/LICENSE
8
 */
9
10
namespace Flipbox\Transform\Helpers;
11
12
/**
13
 * @author Flipbox Factory <[email protected]>
14
 * @since 3.0.0
15
 */
16
class MapperHelper
17
{
18
    /**
19
     * @param array $array
20
     * @param array $map
21
     * @return array
22
     */
23
    public static function to(array $array, array $map): array
24
    {
25
        return static::replaceKeys($array, $map);
26
    }
27
28
    /**
29
     * @param array $errors
30
     * @param array $map
31
     * @return array
32
     */
33
    public static function from(array $errors, array $map): array
34
    {
35
        return static::replaceKeys($errors, array_flip($map));
36
    }
37
38
    /**
39
     * @param array $array
40
     * @param array $keyMap
41
     * @return array
42
     */
43
    public static function replaceKeys(array $array, array $keyMap): array
44
    {
45
        array_walk($keyMap, function ($to, $from) use (&$array) {
46
            $newKey = array_key_exists($from, $array) ? $to : false;
47
            if ($newKey !== false) {
48
                $array[$to] = $array[$from];
49
                unset($array[$from]);
50
            }
51
        });
52
53
        return $array;
54
    }
55
}
56