1

I'm trying to add up the total based on the same key.

This my array

[
    {
        "tipe": "IT",
        "kode": "302.1259",
        "total": "5"
    },
    {
        "tipe": "ADM",
        "kode": "302.1122",
        "total": "2"
    },
    {
        "tipe": "IT",
        "kode": "302.1000",
        "total": "10"
    },
    {
        "tipe": "SUPPORT",
        "kode": "302.2389",
        "total": "10"
    },
]

I want to add up the total based on the same key. I hope the output is like this

[
        {
            "tipe": "IT",
            "total": "15" 
        },
        {
            "tipe": "ADM",
            "total": "2"
        },
        {
            "tipe": "SUPPORT",
            "total": "10"
        },
    ]

and this is the code I've made, but I still haven't managed to add up the total based on the same key

 public function getView()
    {
        $sum = 0;
        $hasil = array();
        
        $satu = $this->my_model->getDB()->result_array();
        foreach($satu as $key =>$val){
            $cek = $this->my_model->cek_kode($val['kode'])->num_rows();
            if ($cek > 0 ) {
               $val['total'] = 0;
            }
            $sum += $val['total'];
            
            $hasil[] = array(
            'tipe'     => $val['tipe'],
            'total'    => number_format($sum),
            );  
        }
        $response =  $this->set_response($hasil,200);    
    }

I created the function above but it doesn't work

0

1 Answer 1

1

Based on the array you provided, you can add up the totals like this:

$array = [
    [
        "tipe" => "IT",
        "kode" => "302.1259",
        "total" => "5"
    ],
    [
        "tipe" => "ADM",
        "kode" => "302.1122",
        "total" => "2"
    ],
    [
        "tipe" => "IT",
        "kode" => "302.1000",
        "total" => "10"
    ],
    [
        "tipe" => "SUPPORT",
        "kode" => "302.2389",
        "total" => "10"
    ]
];

$totals = [];

foreach ($array as $item) {
    if (!array_key_exists($item['tipe'], $totals)) {
        $totals[$item['tipe']] = (int)$item['total'];
        continue;
    }

    $totals[$item['tipe']] += (int)$item['total'];
}
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.