Quick actions

cmd+k|ctrl+k

Navigation

Languages

sumDataFix

Snippet info

Language

Php

Visibility

public

Author

zjmainstay

Created

2017-04-01T08:05:41Z

Updated

2017-04-01T08:05:41Z

<?php
function sumShuzi(&$tree, &$updateData = array()) {
  $sum = 0;
  foreach($tree as &$item) {
    if(isset($item['children'])) {
      $oldPshuzi = $item['Pshuzi'];
      $item['Pshuzi'] = sumShuzi($item['children'], $updateData);
      if($oldPshuzi != $item['Pshuzi']) {
        $updateData[$item['id']] = array($item['Pshuzi'], $item['Pname_ch']);
      }
    }
    $sum += $item['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