簡體   English   中英

如何使用 php 獲得具有相同鍵的關聯數組的總和

[英]how to get sum of associative array with same key using php

我有一個 PHP 數組,如下所示。 我試圖獲得相同數組鍵的值的總和。 我想使用 PHP 獲得關聯數組中每個關鍵元素的總和。 如果有人可以幫助我,那么它對我更有幫助。 先感謝您。 我的代碼是這樣的:

  $arr = array();

  foreach ( $search as $srch_val => $srch_row){
    
   foreach ($srch_row as $key => $val) {

        if(array_key_exists($key, $arr)){
          $arr[$key] = $arr[$key] + array_sum($val);
          
        } else {
            $arr[$key] = array_sum($val);
        }
      }
 }

我的數組是這樣的:

Array(   
    [RED] => Array
            (
               [AP] => 2

            )

            [BLUE] => Array
            (
                 [OR] => 5
                 [GR] => 3
                 [PL] => 2
                 [BL] => 1
            )

            [YELLOW] => Array
            (
                [LI] => 7
                [OR] => 4
                [GR] => 3
                [PL] => 4
            )

            [GREEN] => Array
            (
                [GR] => 3
                [AP] => 2
                [PL] => 1
                [LI] => 2
            )

    [BLACK] => Array
        (
            [BL] => 4
            [GR] => 4
            [LI] => 3
        )

    [VIOLET] => Array
        (
            [PL] => 3
            [GR] => 2
            [LI] => 1
        )
      )
  Array
  (
      [ORANGE] => Array
          (
              [AV] => 5
              [BL] => 6
              [OR] => 2
              [LI] => 3
          )

      [GREEN] => Array
          (
              [LI] => 5
              [GR] => 6
              [AP] => 2
              [CB] => 3
          )

      [YELLOW] => Array
          (
              [LI] => 6
              [PL] => 5
              [OR] => 2
          )
  )

我想得到每個關鍵元素的總和

我的 output 喜歡:

[AP] => 6
[OR] => 13
[GR] => 21
[PL] => 15
[BL] => 11
[LI] => 28
[AV] => 5
[CB] => 3

但是我得到了所有鍵都包含零的結果。

$val是一個數字而不是一個數組,所以擺脫array_sum並使用$val

$arr = array();

foreach ($search as $srch_val => $srch_row) {
    foreach ($srch_row as $key => $val) {
        if(array_key_exists($key, $arr)) {
            $arr[$key] = $arr[$key] + ($val);
        } else {
            $arr[$key] = ($val);
        }
    }
}
    

工作示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM