3 回答

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
這是片段。要獲得所需的結(jié)果,您需要按tenancy_rate 分組,而不是按建筑物 ID,
$result = [];
foreach ($arr as $val) {
// as I see, rent for some array not there, so setting it to 0
$val['rent'] = ($val['rent'] ?? 0);
if (isset($result[$val['tenancy_rate']]['rent'])) {
$result[$val['tenancy_rate']]['rent'] += $val['rent'];
} else {
$result[$val['tenancy_rate']] = [
'tenancy_rate' => $val['tenancy_rate'], 'rent' => $val['rent']];
}
}
print_r($result);
演示
輸出:-
Array
(
[0] => Array
(
[tenancy_rate] => 0
[rent] => 77000
)
[1] => Array
(
[tenancy_rate] => 10
[rent] => 172100
)
[2] => Array
(
[tenancy_rate] => 20
[rent] => 172100
)
)

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以foreach按索引使用和分組tenancy_rate
$f = [];
foreach($a as $v){
if(!empty($f[$v['tenancy_rate']])){
$f[$v['tenancy_rate']]['rent'] += $v['rent'];
}else{
$f[$v['tenancy_rate']] = [
'tenancy_rate' => $v['tenancy_rate'],
'rent' => isset($v['rent']) ? $v['rent'] : 0
];
}
}
工作示例:- https://3v4l.org/nWRGA
您可以使用array_values重新排列數(shù)組的順序

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
首先,您需要使用計(jì)算每個(gè)租賃率的租金總和:
$rentSums = [];
foreach ($input as $info) {
$tenancyRate = $info['tenancy_rate'] ?? 0;
$rent = $info['rent'] ?? 0;
$rentSum = $rentSums[$tenancyRate] ?? 0;
$rentSums[$tenancyRate] = $rentSum + $rent;
}
然后您可以使用上一步中的數(shù)據(jù)構(gòu)建結(jié)果:
$result = [];
foreach ($rentSums as $tenancyRate => $rentSum) {
$result[] = [
'tenancy_rate' => $tenancyRate,
'rent' => $rentSum,
];
}
- 3 回答
- 0 關(guān)注
- 196 瀏覽
添加回答
舉報(bào)