helpers.php 728 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. if (!function_exists('make_tree')) {
  3. /**
  4. * @param array $list
  5. * @param int $parentId
  6. * @return array
  7. */
  8. function make_tree(array $list, $parentId = 0) {
  9. $tree = [];
  10. if (empty($list)) {
  11. return $tree;
  12. }
  13. $newList = [];
  14. foreach ($list as $k => $v) {
  15. $newList[$v['id']] = $v;
  16. }
  17. foreach ($newList as $value) {
  18. if ($parentId == $value['parent_id']) {
  19. $tree[] = &$newList[$value['id']];
  20. } elseif (isset($newList[$value['parent_id']])) {
  21. $newList[$value['parent_id']]['children'][] = &$newList[$value['id']];
  22. }
  23. }
  24. return $tree;
  25. }
  26. }