Computations

sum

Definition

Arr::sum(array ...$arrays): array

Description

Sum associative arrays by their keys into one array

Examples

$arrays = [
    [
        'a' => 1,
        'b' => -3.5,
        'c' => 0,
        3
    ],
    [
        2,
        'a' => 0,
        'c' => -5,
        'd' => PHP_INT_MAX,
    ],
    [
        -5,
        'b' => 3.5,
        'a' => -1,
        'c' => 5,
    ],
    [
        'd' => PHP_INT_MAX,
    ],
    [
        'd' => 2 * -PHP_INT_MAX,
    ]
];

Arr::sum(...$arrays) ->
[
    0,
    'a' => 0,
    'b' => 0,
    'c' => 0,
    'd' => 0,
]

Arr::sum([null, '', false], ['1', true, 'test']) -> [1, 1, 0]

diffObjects

Declaration

Arr::diffObjects(array $array1, array $array2, array ...$arrays): array

Description

Compute difference between two or more arrays of objects

Examples

$object1 = new \stdClass();
$object2 = new \stdClass();
$object3 = new \stdClass();

Arr::diffObjects(
    [$object3, $object1, $object2], 
    [$object3], [$object2]
) -> [1 => $object1]

Arr::diffObjects(
    [$object3, $object1, $object2], 
    [$object3], 
    [$object1, $object2]
) -> []

Arr::diffObjects(
    [$object1], 
    [$object3], 
    [$object2], 
    []
) -> [$object1]

intersectObjects

Definition

Arr::intersectObjects(array $array1, array $array2, array ...$arrays): array

Description

Compute intersection between two or more arrays of objects

Examples

$object1 = new \stdClass();
$object2 = new \stdClass();
$object3 = new \stdClass();

Arr::intersectObjects(
    [$object3, $object1, $object2], 
    [$object3, $object2], 
    [$object2]
) -> [2 => $object2]

Arr::intersectObjects(
    [$object3, $object1, $object2], 
    [$object3], 
    [$object1, $object2]
) -> []

Arr::intersectObjects(
    [$object1, $object2, $object3, $object1], 
    [$object1, $object2]
) -> [$object1, $object2, 3 => $object1]

Last updated