PHP多层分类树状图

tech2026-06-06  4

/** * 用于下拉的多级菜单结构归类 * @param $arr * @param int $id * @param int $level * @return array */ function nodeTree($arr, $id = 0, $level = 0) { static $array = array(); foreach ($arr as $v) { if ($v['parent_id'] == $id) { $v['level'] = $level; $array[] = $v; nodeTree($arr, $v['id'], $level + 1); } } return $array; } /** * 多层分类树状图 * @param $list 原始数组 * @param string $pk 当前分类id * @param string $pid 父类id * @param string $child 子类键名 * @param int $root 顶级分类 * @return array 多级结构数组 */ function generateTree($list, $pk = 'id', $pid = 'parent_id', $child = 'children', $root = 0) { $tree = array(); $packData = array(); foreach ($list as $data) { $packData[$data[$pk]] = $data; } foreach ($packData as $key => $val) { if ($val[$pid] == $root) { $tree[] = &$packData[$key]; } else { $packData[$val[$pid]][$child][] = &$packData[$key]; } } return $tree; }
最新回复(0)