recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment additionner des valeurs avec la même valeur de tableau en PHP

J'ai fusionné deux tableaux (tous deux tirés de différentes tables MySQL) et maintenant je veux additionner tous les éléments des tableaux avec la même valeur.

$merged_arr = array_merge($reg, $rel);

Array
(
    [0] => Array
        (
            [DEPARTMENT] => LEAFSPRINGDIRECT
            [BASIC INCOME] => 3035.37
            [OT PAY] => 0
        )

    [1] => Array
        (
            [DEPARTMENT] => MUFFLERDIRECT
            [BASIC INCOME] => 24962.09
            [OT PAY] => 5358.76
        )

    [2] => Array
        (
            [DEPARTMENT] => MUFFLERDIRECT 
            [BASIC INCOME] => 14082.080000000002
            [OT PAY] => 3248.4
        )
)

C'est ce que j'ai essayé, mais j'ai dû utiliser des instructions if-else encore et encore.

foreach($merged_arr as $key => $val) 
    {
        // echo $val['BASIC INCOME']."<br>";

        // echo array_keys(array_values($new_arr)[$key])[$count]."-".array_values(array_values($new_arr)[$key])[$count]."<br>";
        if(array_values(array_values($new_arr)[$key])[$count] == "RADIATORDIRECT") {
            $new_arr['BASIC INCOME'] += '...';
        }

        $count++;
    }

Le tableau que je veux devrait ressembler à ceci :

Array
(
    [0] => Array
        (
            [DEPARTMENT] => LEAFSPRINGDIRECT
            [BASIC INCOME] => 3035.37
            [OT PAY] => 0
        )

    [1] => Array
        (
            [DEPARTMENT] => MUFFLERDIRECT
            [BASIC INCOME] => 39044.17‬
            [OT PAY] => 8607.16‬
        )
)

Existe-t-il un moyen plus simple ? Merci d'avance.

P粉401527045P粉401527045502 Il y a quelques jours564

répondre à tous(1)je répondrai

  • P粉464082061

    P粉4640820612023-09-11 13:52:23

    Je ferais ceci côté SQL :

    SELECT DEPARTMENT, SUM(`BASIC INCOME`) AS `BASIC INCOME`,  SUM(`OT PAY`) AS `OT PAY`
    FROM
    (
        SELECT DEPARTMENT, `BASIC INCOME`, `OT PAY`
        FROM `table_a`
        -- WHERE ...
    
        UNION ALL
    
        SELECT DEPARTMENT, `BASIC INCOME`, `OT PAY`
        FROM `table_b`
        -- WHERE ...
        
    ) UNIONS
    
    GROUP BY DEPARTMENT
    

    répondre
    0
  • Annulerrépondre