如何在多个json数组中求和。我把我的表中的每一个金额都加到json数组中,我想根据id对json数组中的所有金额求和,请帮忙
| id | particulars | client_id
| 140 | [{"amt":"850","ptr":"ITR FEE"}] | 1872
| 1637 | [{"amt":"900","ptr":"ITR RET 2018-19"}] | 1872
我的问题是这样的:
$fetchfbillamt = $ketObj->runquery("SELECT", "*", "vksoft_fbill", array(), "where client_id=".'1872'."");
if (isset($fetchfbillamt) && is_array($fetchfbillamt) &&
count($fetchfbillamt) > 0)
{
$fbillencodeamt = $fetchfbillamt[0]['particulars'];
$fbilldecodeamt = json_decode($fbillencodeamt);
foreach ($fbilldecodeamt as $fbilldecodeamtV)
{
$sumfbillamt +=$fbilldecodeamtV->amt;
}
echo $sumfbillamt;
}
显示输出850
不显示1750
4条答案
按热度按时间pu3pd22g1#
可以使用array reduce函数简化代码。我们可以根据需要创建自己的自定义函数并执行操作。
将输出
int(1750)
des4xlb02#
你已经写了你的
foreach
循环错误的变量,你应该迭代$fetchbillamt
相反。试试这个:anauzrmj3#
你会在下面的地方犯错误,结果是多维数组而你是静态赋值的。
试试这个代码,
abithluo4#
看起来你只是排在第一排:
$fbillencodeamt = $fetchfbillamt[0]['particulars'];
这实际上应该在foreach循环中,如下所示: