Quick actions

cmd+k|ctrl+k

Navigation

Languages

dataSum

Snippet info

Language

Php

Visibility

public

Author

zjmainstay

Created

2017-04-01T07:28:21Z

Updated

2017-04-01T08:13:33Z

<?php
function sumShuzi(&$tree, &$updateData = array()) {
  $sum = 0;
  //foreach($tree as $key => $item) {  //尼玛这句话有毒
  foreach($tree as $key => &$item) {
    if(isset($item['children'])) {
      $oldPshuzi = $tree[$key]['Pshuzi'];
      $tree[$key]['Pshuzi'] = sumShuzi($item['children'], $updateData);
      if($oldPshuzi != $tree[$key]['Pshuzi']) {
        $updateData[$item['id']] = array($tree[$key]['Pshuzi'], $tree[$key]['Pname_ch']);
      }
    }
    $sum += $tree[$key]['Pshuzi'];
  }

  return $sum;
}

$tree = json_decode('[{"id":"1","Pid":"0","Pname_ch":"\u6e20\u9053\u90e8","Pshuzi":"1638000","children":[{"id":"4","Pid":"1","Pname_ch":"\u9500\u552e\u4e8c\u90e8","Pshuzi":"895000","children":[{"id":"13","Pid":"4","Pname_ch":"\u5468\u7ecf\u7406","Pshuzi":"28","children":[{"id":"28","Pid":"13","Pname_ch":"\u6e56\u5357","Pshuzi":"158000"},{"id":"35","Pid":"13","Pname_ch":"\u65b0\u7586","Pshuzi":"19000"}]},{"id":"40","Pid":"4","Pname_ch":"\u9648\u7ecf\u7406","Pshuzi":"5000"}]}]}]', true);

sumShuzi($tree, $updateData);

print_r($tree);

print_r($updateData);

//问题:$tree里的周经理 Pshuzi为啥是28,而不是177000
INFO