Meta   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 5
c 2
b 0
f 1
lcom 0
cbo 0
dl 0
loc 26
ccs 17
cts 17
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A unFlatten() 0 13 3
A deepen() 0 9 2
1
<?php
2
3
namespace Jclyons52\PagePreview;
4
5
class Meta extends \ArrayObject
6
{
7 9
    public function unFlatten($array = null)
8
    {
9 9
        if ($array === null) {
10 9
            $array = $this;
11 9
        }
12 9
        $result = [];
13 9
        foreach ($array as $key => $value) {
14 9
                $keys = explode(':', $key);
15 9
                $mu = $this->deepen($keys, $value);
16 9
                $result = array_merge_recursive($result, $mu);
17 9
        }
18 9
        return $result;
19
    }
20
21 9
    public function deepen($keys, $value, $index = 0, $carry = [])
22
    {
23 9
        if (array_key_exists($index + 1, $keys)) {
24 9
            $carry[$keys[$index]] = $this->deepen($keys, $value, $index + 1);
25 9
        } else {
26 9
            $carry[$keys[$index]] = $value;
27
        }
28 9
        return $carry;
29
    }
30
}
31