猿问

php 二维数组计算求和

[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的和
眼眸繁星
浏览 499回答 2
2回答

一只萌萌小番薯

$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;
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答