php无限分类
2016-06-22 15:43
531 查看
无限循环
1.需要套2个foreach
2.2个foreach结构一样
纯代码获取数据
案例
完美代码
显示数组格式
格式
php代码
1.需要套2个foreach
2.2个foreach结构一样
纯代码获取数据
public function CycleData($parent_id=0){ $where['parent_id']= $parent_id; $res = $this->m->where($where)->field('id,name')->select(); foreach($res as $k=>$v){ $result[$v['id']]['id'] = $v['id']; $result[$v['id']]['name'] = $v['name']; $r = $this->GametypeOpt($v['id']); foreach($r as $kk=>$vv){ $result[$vv['id']]['id'] = $vv['id']; $result[$vv['id']]['name'] = "-| ".$vv['name']; } } return $result; }
案例
// 无限循环数据 public function CycleData($parent_id=0){ $where['parent_id']= $parent_id; $res = $this->m->where($where)->field('id,name')->select(); foreach($res as $k=>$v){ $result[$v['id']]['id'] = $v['id']; $result[$v['id']]['name'] = $v['name']; //$opt[$v['id']] .= "<option value='".$v['id']."'>".$v['name']."</option>"; $r = $this->CycleData($v['id']); foreach($r as $kk=>$vv){ $result[$vv['id']]['id'] = $vv['id']; $result[$vv['id']]['name'] = " |- ".$vv['name']; //$opt[$vv['id']] .= "<option value='".$vv['id']."'>".$vv['name']."</option>"; } } return $result; } // 无限循环opt public function GametypeOpt($parent_id=0,$val){ $list = $this->CycleData($parent_id); $opt .= "<option value='0'>顶级分类</option>"; foreach($list as $k=>$v){ if($v['id'] = $val){ $opt .= "<option value='".$v['id']."' selected='selected'>".$v['name']."</option>"; }else{ $opt .= "<option value='".$v['id']."'>".$v['name']."</option>"; } } return $opt; }
完美代码
public function CycleData($parent_id=0){ $res = $this->Catedata($parent_id); if(empty($res)) return false; foreach($res as $k=>$v){ $result[$v['id']]['id'] = $v['id']; $result[$v['id']]['name'] = $v['name']; $result[$v['id']]['parent_id'] = $v['parent_id']; $rf = $this->CycleData($v['id']); if($rf){ foreach($rf as $k=>$vv){ $result[$vv['id']]['id'] = $vv['id']; $result[$vv['id']]['name'] = " |- ".$vv['name']; $result[$vv['id']]['parent_id'] = $vv['parent_id']; } } } return $result; }
显示数组格式
array( '1' => array( 'id' => '1', 'parent_id' => '0', 'name' =>'顶级分类一' ), '2' => array( 'id' => '2', 'parent_id' => '1', 'name' =>' |- 二级分类一' ), '4' => array( 'id' => '4', 'parent_id' => '2', 'name' =>' |- |- 三级分类一' ), '5' => array( 'id' => '1', 'parent_id' => '0', 'name' =>'顶级分类一' ), '3' => array( 'id' => '3', 'parent_id' => '5', 'name' =>' |- 三级分类一' ), );
格式
Array ( [1] => Array ( [id] => 1 [name] => 1 [child] => Array ( [3] => Array ( [id] => 3 [name] => 23523 [child] => Array ( [2] => Array ( [id] => 2 [name] => 234234 [child] => ) ) ) ) ) [5] => Array ( [id] => 5 [name] => 234234 [child] => Array ( [4] => Array ( [id] => 4 [name] => 12302 [child] => ) ) ) )
php代码
public function CycleData($parent_id=0){ $where['parent_id']= $parent_id; $res = db('category')->where($where)->select(); if(empty($res)) return false; foreach($res as $k=>$v){ $result[$v['id']]['id'] = $v['id']; $result[$v['id']]['name'] = $v['name']; $result[$v['id']]['child'] = $this->CycleData($v['id']); } return $result; }
相关文章推荐
- 为ZendStudio增加CodeIgniter的智能提\
- 一台服务器配主从
- 事务产生的脏读幻读不可重复读
- 接口安全
- php 扩展dll
- response 删除thinkphp版权标记
- 单向散列加密,对称加密,非对称加密
- 使用phpexcel解析Excel数据表并存储到数据库中全过程_PHP_thinkphp_cmf
- PHP魔术方法及其基本含义
- 第三方登录
- 接口与抽象类的区别
- PHP魔术方法使用总结
- Ubuntu 16 安装php 5.5 的方法
- PHP遍历文件夹目录
- PHP ZIP压缩
- PHP中的错误信息的提示配置及含义
- 一个php的爬虫,将笔趣阁的书可以都下载下来。
- php 函数的嵌套
- Yii2之gii的配置与使用
- #ubuntu# ubuntu 下安装 phpstorm