我有数组形式的查询 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)我使用将这两个数组合并为 1 array_merge$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)所以,现在我需要总结payment,并total根据uid。我遇到了如何获取payment和totalin 数组可以总结这两个值的问题?$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)
1 回答
牧羊人nacy
TA贡献1862条经验 获得超7个赞
不确定示例中为什么有 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
)
)
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消