Search code examples
phparraysmultidimensional-arraysortingassociative

Combine and sum values in multi-dimensional associative array using php


I have an associative array that looks like this:

Array (
    [0] => Array (
        [amount] => 3
        [name] => Chuck
    )
    [1] => Array (
        [amount] => 2
        [name] => Steve
    )
    [2] => Array (
        [amount] => 5
        [name] =>
    )
    [3] => Array (
        [amount] => 4
        [name] => Chuck
    )
    [4] => Array (
        [amount] =>
        [name] => Chuck
    )
)

I need to remove values that are missing a name or amount e.g. [2] and [4] and then sum the totals for each name so that the final array is:

Array (
    [0] => Array (
        [amount] => 7
        [name] => Chuck
    )
    [1] => Array (
        [amount] => 2
        [name] => Steve
    )
) 

Solution

  • For anyone looking for this nowadays, this would be much cleaner:

    $sum = array_sum(array_column($data, 'amount'));