is_array_of_array()   A
last analyzed

Complexity

Conditions 4
Paths 1

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
eloc 8
nc 1
nop 2
dl 0
loc 13
ccs 0
cts 8
cp 0
crap 20
rs 10
c 1
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * @param array $keys
7
 * @param array $haystack
8
 *
9
 * @return bool
10
 */
11
function array_keys_exists(array $keys, array $haystack): bool
12
{
13 8
    return count(array_diff_key(array_flip($keys), $haystack)) === 0;
14
}
15
16
/**
17
 * @param array $haystack
18
 *
19
 * @return bool
20
 */
21
function is_a_real_array(array $haystack): bool
22
{
23 3
    return array_reduce(
24 3
        array_keys($haystack),
25
        static function (bool $valid, $key): bool {
26 3
            return true === $valid && true === is_int($key);
27 3
        },
28 3
        true
29
    );
30
}
31
32
/**
33
 * @param array $haystack
34
 * @param bool $all
35
 *
36
 * @return bool
37
 */
38
function is_array_of_array(array $haystack, bool $all = false): bool
39
{
40
    return array_reduce(
41
        array_values($haystack),
42
        static function (bool $valid, $key) use ($all): bool {
43
            $isArray = true === is_array($key);
44
            if (true === $all) {
45
                return true === $valid && true === $isArray;
46
            }
47
48
            return true === $valid || true === $isArray;
49
        },
50
        $all
51
    );
52
}
53