我正在使用 foreach 在 laravel php 中显示我的数据库中的某些值。但是,当我运行多个 foreach 语句时,这些值作为单个值出现,例如“100.00 200.00”。但是,我希望这些值是在 foreach 语句之后添加的字符串,例如“300.00”。我的 foreach 语句如下所示:
@php
foreach($cash_sales as $cs){
if( $ledgers->id == $cs->dr_ledger){
echo number_format($cs->amount, 2);
};
};
foreach($oprefund_credit_cr as $op){
if( $receivable->id == $op->ledger_code){
echo number_format($op->amount, 2);
};
};
@endphp
我希望通过添加来连接这些值。有什么方法可以实现我想要的吗?任何帮助将不胜感激。
最佳答案
如果我的问题正确,请将中间结果存储在变量中并在最后打印。
$sum = 0;
foreach($cash_sales as $cs){
if( $ledgers->id == $cs->dr_ledger){
sum += $cs->amount;
};
};
foreach($oprefund_credit_cr as $op){
if( $receivable->id == $op->ledger_code){
echo number_format($op->amount, 2);
$sum+=$op->amount;
};
};
echo number_format($sum, 2);
编辑:
这应该保存每个分类帐的单独金额
$result = [];
foreach($cash_sales as $cs){
if( $ledgers->id == $cs->dr_ledger)
{
$key = 'cash_sales_'.$cs->dr_ledger;
if (empty($result[$key]) $result[$key] = 0;
$result[$key] += $cs->amount;
};
};
foreach($oprefund_credit_cr as $op){
if( $receivable->id == $op->ledger_code){
$key = 'oprefund_credit_cr_'.$op->ledger_code;
if (empty($result[$key]) $result[$key] = 0;
$result[$key] += $cs->amount;
};
};
foreach($result as $key=>$value)
{
echo sprintf("%s: %s", $key, number_format($value, 2));
}
关于php - 在 foreach PHP 中使用 echo 时添加字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53755820/