-5

Following is my array. I need to add its Sum field according to each emp_firstname. Some has only one time coming, some coming two times. how can we sum the field and make the array unique?

Array
(
    [0] => Array
        (
            [emp_firstname] => Alistair
            [non_pm] => AMZ
            [sum] => 2
        )


    [1] => Array
        (
            [emp_firstname] => Shakkeer
            [non_pm] => SHK
            [sum] => 3
        )

    [2] => Array
        (
            [emp_firstname] => Waqas
            [non_pm] => WAS
            [sum] => 12
        )

    [3] => Array
        (
            [emp_firstname] => Zain
            [non_pm] => ZAI
            [sum] => 9
        )


    [4] => Array
        (
            [emp_firstname] => Shakkeer
            [gud_pmeditor] => SHK
            [sum] => 4
        )

    [5] => Array
        (
            [emp_firstname] => Zain
            [gud_pmeditor] => ZAI
            [sum] => 2
        )

)
2
  • Have you tried anything yet? A simple foreach into another array should do it. Commented May 20, 2019 at 10:57
  • @AnuragSrivastava is right. It's literally 3 lines of code. Give it a try and if you don't make it i will post the answer for you. Commented May 20, 2019 at 11:03

1 Answer 1

1

You can get the desired result using this approach

$res=[];
foreach($arr as $val){
  if(array_key_exists($val['emp_firstname'], $res))
    $res[$val['emp_firstname']]['sum'] = ($res[$val['emp_firstname']]['sum'] + $val['sum']);
  else
    $res[$val['emp_firstname']] = $val;
}

Live Demo

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.