簡體   English   中英

總結多個數組

[英]sum up multiple array

我有數組形式的查詢 2:

結果1:

  0 => 
    array (size=2)
      'uid' => string '1' (length=5)
      'total' => string '100' (length=18)
  1 => 
    array (size=2)
      'uid' => string '2' (length=5)
      'total' => string '200' (length=18)

結果2:

 0 => 
    array (size=2)
      'uid' => string '1' (length=5)
      'payment' => string '101' (length=7)
  1 => 
    array (size=2)
      'uid' => string '2' (length=5)
      'payment' => string '102' (length=5)

我使用array_merge將這兩個數組合並為 1

$a_m = array_merge($result,$result2);
        foreach ($a_m as $value) {
            $group[$value['uid']][] = $value;
        }

所以,數組現在按 uid 分組

輸出:

1 => 
    array (size=2)
      0 => 
        array (size=2)
          'uid' => string '1' (length=5)
          'total' => string '100' (length=17)
      1 => 
        array (size=2)
          'uid' => string '1' (length=5)
          'payment' => string '101' (length=7)
2 => 
    array (size=2)
      0 => 
        array (size=2)
          'uid' => string '2' (length=5)
          'total' => string '200' (length=17)
      1 => 
        array (size=2)
          'uid' => string '2' (length=5)
          'payment' => string '201' (length=7)

所以,現在我需要根據uid總結paymenttotal 我我如何能得到滿足的問題paymenttotal陣列可以總結這兩個值?

$total_value = $payment + $total;

我需要這樣的結果(我不確定結果的形式,因為我只需要先總結值)

0 => 
    array (size=2)
      'uid' => string '1' (length=5)
      'total_value' => string '201' (length=18)
  1 => 
    array (size=2)
      'uid' => string '2' (length=5)
      'total_value' => string '402' (length=18)

不確定示例中為什么有 123 和 456,但要獲得“總計”+“付款”的結果,並且如果始終有 2 個數組,1 個用於總計,1 個用於付款,一種選擇可能是使用 array_map .

在示例中,我使用$array ,但在您的代碼中使用$group[$value['uid']]

$result = array_map(function($x) {
    return  ['uid' => $x[0]['uid'], 'total_value' => (float)($x[0]['total']) + (float)($x[1]['payment'])];
}, $arrays);

print_r($result);

結果

Array
(
    [0] => Array
        (
            [uid] => 1
            [total_value] => 201
        )

    [1] => Array
        (
            [uid] => 2
            [total_value] => 401
        )

)

PHP 演示

暫無
暫無

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

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