Completed
Pull Request — master (#41)
by Romain
02:55
created

UtilityTrait::camelize()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
nc 1
cc 1
eloc 2
nop 2
crap 2
1
<?php
2
namespace Kerox\Messenger\Helper;
3
4
trait UtilityTrait
5
{
6
7
    /**
8
     * Enhanced version of array_filter which allow to filter recursively
9
     *
10
     * @param array $array
11
     * @param callable|array $callback
12
     * @return array
13
     */
14 19
    public function arrayFilter(array $array, $callback = ['self', 'filter']): array
15
    {
16 19
        foreach ($array as $k => $v) {
17 19
            if (is_array($v)) {
18 19
                $array[$k] = $this->arrayFilter($v, $callback);
19
            }
20
        }
21
22 19
        return array_filter($array, $callback);
23
    }
24
25
    /**
26
     * Callback function for filtering.
27
     *
28
     * @param mixed $var Array to filter.
29
     * @return bool
30
     */
31 19
    protected static function filter($var)
32
    {
33 19
        return $var === 0 || $var === 0.0 || $var === '0' || !empty($var);
34
    }
35
}
36