Passed
Push — master ( f7d584...3bbc21 )
by Alexander
02:20
created

ArrayHelper   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
c 1
b 0
f 0
lcom 0
cbo 1
dl 0
loc 24
ccs 11
cts 11
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A permute() 0 16 3
1
<?php
2
3
4
namespace Horat1us\Yii\Helpers;
5
6
use yii\helpers\ArrayHelper as YiiArrayHelper;
7
8
class ArrayHelper extends YiiArrayHelper
9
{
10
    /**
11
     * @param $items
12
     * @param array $perms
13
     * @return array
14
     */
15 1
    public static function permute($items, $perms = [])
16
    {
17 1
        if (empty($items)) {
18 1
            $return = [$perms];
19
        } else {
20 1
            $return = [];
21 1
            for ($i = count($items) - 1; $i >= 0; --$i) {
22 1
                $newItems = $items;
23 1
                $newPerms = $perms;
24 1
                list($foo) = array_splice($newItems, $i, 1);
25 1
                array_unshift($newPerms, $foo);
26 1
                $return = array_merge($return, static::permute($newItems, $newPerms));
27
            }
28
        }
29 1
        return $return;
30
    }
31
}