Completed
Push — master ( db978a...536211 )
by Aydin
31s queued 11s
created

collect()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpSchool\CliMenu\Util;
6
7
function mapWithKeys(array $array, callable $callback) : array
8
{
9
    $arr = array_combine(
10
        array_keys($array),
11
        array_map($callback, array_keys($array), $array)
12
    );
13
14
    assert(is_array($arr));
15
16
    return $arr;
17
}
18
19
function filter(array $array, callable $callback) : array
20
{
21
    return array_filter($array, function ($v, $k) use ($callback) {
22
        return $callback($k, $v);
23
    }, ARRAY_FILTER_USE_BOTH);
24
}
25
26
function each(array $array, callable $callback) : void
27
{
28
    foreach ($array as $k => $v) {
29
        $callback($k, $v);
30
    }
31
}
32
33
function max(array $items) : int
34
{
35
    return count($items) > 0 ? \max($items) : 0;
36
}
37
38
function collect(array $items) : Collection
39
{
40
    return new Collection($items);
41
}
42