ThinkPHP自动填充实现无限级分类--无法进行排序的问题
时间:2011-08-20
来源:互联网
李老师进的ThinkPHP自动填充实现无限级分类中存在一个问题:
无法对无限分类的数据进行desc排序,只能以asc的排序方式。而且输出的结果也是混乱的,不知道有没有办法实现数据的desc排序:
$list = $model->field("id,status,pid,name,final,path,concat(path,'-',id) as bpath")->order('bpath')->select();
无法对无限分类的数据进行desc排序,只能以asc的排序方式。而且输出的结果也是混乱的,不知道有没有办法实现数据的desc排序:
$list = $model->field("id,status,pid,name,final,path,concat(path,'-',id) as bpath")->order('bpath')->select();
图片:aa.jpg
'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" title="Click Here To EnLarge">
'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" title="Click Here To EnLarge">
作者: nzing 发布时间: 2011-08-20
这种数据结构是不能通过mysql直接排序的,,原因很简单bpath是字符串格式,,12会被认为比2小
你要把分类数组弄到php里去排序,,另外你还需要增加一个sort字段用于各分类之前进行排序
php里的思路是这样的:
1。建一个新的数组,把0级分类先加进这个数组,
2.建立一个for循环,然后用bpath来找子分类,找到一组子分类后,先对他们进行排序用这个函数array_multisort(),
3.然后用array_splice函数插入到这个父分类之后,,这样一直循环
注意原数组要把找到那些分类都去掉array_filter(),并重建索引array_values(),,这样原数组越来越少,速度也很快
你要把分类数组弄到php里去排序,,另外你还需要增加一个sort字段用于各分类之前进行排序
php里的思路是这样的:
1。建一个新的数组,把0级分类先加进这个数组,
2.建立一个for循环,然后用bpath来找子分类,找到一组子分类后,先对他们进行排序用这个函数array_multisort(),
3.然后用array_splice函数插入到这个父分类之后,,这样一直循环
注意原数组要把找到那些分类都去掉array_filter(),并重建索引array_values(),,这样原数组越来越少,速度也很快
作者: 心诚志成 发布时间: 2011-10-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28