为了账号安全,请及时绑定邮箱和手机立即绑定

php 二维数组计算求和

php 二维数组计算求和

眼眸繁星 2019-05-12 14:25:42
[34]=>Array([sum]=>13[name]=>油区开发部[id]=>27[parentid]=>1[children]=>Array())[35]=>Array([sum]=>2[name]=>三分公司[id]=>31[parentid]=>1[children]=>Array([0]=>Array([sum]=>156[name]=>项目管理分中心[id]=>52[parentid]=>31[children]=>Array())[1]=>Array([sum]=>12[name]=>弯管机组[id]=>54[parentid]=>31[children]=>Array())[2]=>Array([sum]=>20[name]=>车队[id]=>53[parentid]=>31[children]=>Array())[3]=>Array([sum]=>10[name]=>维修机组[id]=>55[parentid]=>31[children]=>Array())[4]=>Array([sum]=>55[name]=>机关[id]=>51[parentid]=>31[children]=>Array())))[36]=>Array([sum]=>56[name]=>五分公司[id]=>32[parentid]=>1[children]=>Array())如何计算三分公司的sum值,是三分公司children下的所有sum的和
查看完整描述

2 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

$arr=[[
'name'=>'三分公司',
'children'=>[
['sum'=>156],
['sum'=>12]
]
]];
functiongetChildrenSum($children)
{
$sum=0;
if(is_array($children)){
foreach($childrenas$item){
$sum+=$item['sum'];
if(isset($item['children'])){
$sum+=getChildrenSum($item['children']);
}
}
}
return$sum;
}
$sum=array_reduce(
array_filter($arr,function($item){
return$item['name']==='三分公司';
}),
function($sum,$item){
return$sum+getChildrenSum($item['children']);
},
0
);
echo$sum;
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 498 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信