有两个数组
第一个数组
Array
(
[0] => Array
(
[SUM(j.Amount)] =>
[DebitAccount] =>
)
[1] => Array
(
[SUM(j.Amount)] => 15842.88
[DebitAccount] => 2310
)
[2] => Array
(
[SUM(j.Amount)] => 3656.68
[DebitAccount] => 2380
)
[3] => Array
(
[SUM(j.Amount)] => 12178.20
[DebitAccount] => 2610
)
)
和第二个数组
Array
(
[0] => Array
(
[SUM(j.Amount)] =>
[CreditAccount] =>
)
[1] => Array
(
[SUM(j.Amount)] => 15842.88
[CreditAccount] => 2310
)
[2] => Array
(
[SUM(j.Amount)] => 30916.44
[CreditAccount] => 2380
)
[3] => Array
(
[SUM(j.Amount)] => 3133.70
[CreditAccount] => 2620
)
)
什么是目标?需要得到这样的输出
账号为2310,值为0.00 (15842.88 - 15842.88)
账号为2380,值为-30916.40 (3656.68 - 30916.44)
帐号为 2610,值为 12178.20 (12178.20 (DebitAccount) - 0.00 (CreditAccount ))
帐号为 2620,值为 -3133.70 (0.00 (DebitAccount) - 3133.70 (CreditAccount ))
现在尝试了解如何做类似的事情 if(DebitAccount == CreditAccount){from (corresponding DebitAccount SUM(j.Amount)) deduct (corresponding CreditAccount SUM(j.Amount));}
您能建议如何达到目标吗?
最佳答案
假设第一个数组是$DAs
,第二个是$CAs
<?php
foreach($DAs as $i=>$da){
foreach($CAs as $j=>$ca){
if($da['DebitAccount'] == $ca['CreditAccount']){
//output
echo 'Account number is '.$da['DebitAccount'].', Value is '.$da['SUM(j.Amount)']-$ca['SUM(j.Amount)'].' ('.$da['SUM(j.Amount)'].' - '.$ca['SUM(j.Amount)'].')';
//deduct the credit
$DAs[$i]['SUM(j.Amount)'] -= $ca['SUM(j.Amount)'];
//we need to use $DAs[$i] to be able to modify its value, because foreach can only give a copy of it.
}
}
}
?>
关于PHP根据数组元素值对来自两个数组的值进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17399650/