Home > Article > Backend Development > Detailed explanation of two methods of implementing stepless recursive classification in PHP
Two ways to implement stepless recursive classification in PHP
The first one:
/** * 无级递归分类 TP框架 * @param int $assortPid 要查询分类的父级id * @param mixed $tag 上下级分类之间的分隔符 * @return string $tree 返回的分类树型结构结果 * */ function recursiveAssort($assortPid, $tag = '') { $assort = M('goods_class')->where("class_pid = $assortPid")->field('class_id, class_name')->select(); foreach ($assort as $value) { $tree .= '<option value="' . $value['class_id'] . '">' . $tag . $value['class_name'] . '</option>'; $tree .= recursiveAssort($value['class_id'], $tag . ' '); } return $tree; }
Second type:
/** * 利用php的引用传递 CI框架 * */ public function get_access() { $access = array(); $field = 'id, pid, method, name, description'; $q_access = $this->db->select($field)->get('access'); $q_result = $q_access->result_array(); if (!empty($q_result)) { $items = array(); foreach ($q_result as $value) { $items[$value['id']] = $value; } foreach ($items as $key => $item) { if ($item['pid'] == 0) { $access[] = &$items[$key]; } else { $items[$item['pid']]['sub_access'][] = &$items[$key]; } } } return $access; }
The above is the detailed content of Detailed explanation of two methods of implementing stepless recursive classification in PHP. For more information, please follow other related articles on the PHP Chinese website!