PHP生成无限级菜单数据 /** * 生成无限级分类 * @param $list 数据 * @param string $pk 主键ID * @param string $pid 子ID * @param string $son 子级字段 * @param int $root * @return array */ protected function tree($list,
/** * 生成无限级分类 * @param $list 数据 * @param string $pk 主键ID * @param string $pid 子ID * @param string $son 子级字段 * @param int $root * @return array */ protected function tree($list, $pk = 'id', $pid = 'pid', $son = 'son', $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]][$son][] = &$packData[$key]; } } return $tree; }