PHP两种实现无级递归分类的方法
2017-03-04 07:54:38
6175次
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /**
* 无级递归分类 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;
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | /**
* 利用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;
}
|