![](/img/trans.png)
[英]PHP/HTML Getting the array multiple and storing into an array to sum them up
[英]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
總結payment
和total
。 我我如何能得到滿足的問題payment
和total
陣列可以總結這兩個值?
$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
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.