php实现下拉框版无限极分类树
2017 年 7 月 31 日
没有评论
直接上代码:
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | $category = array( 0=>array('cat_id'=>1,'cat_name'=>'北京市','parent_id'=>0), 1=>array('cat_id'=>2,'cat_name'=>'东城区','parent_id'=>1), 2=>array('cat_id'=>3,'cat_name'=>'西城区','parent_id'=>1), 3=>array('cat_id'=>4,'cat_name'=>'昌平区','parent_id'=>1), 4=>array('cat_id'=>5,'cat_name'=>'河北省','parent_id'=>0), 5=>array('cat_id'=>6,'cat_name'=>'张家口','parent_id'=>5), 6=>array('cat_id'=>7,'cat_name'=>'南邵镇','parent_id'=>4), ); $list = categoryTree($category,0,0); echo showSelect($list,0); exit; /** * 数据数组设置层级. * * @param array $category 数据数组. * @param string $parent_id 父级id. * @param string $level 层级id. * * @return array. */ function categoryTree($category, $parent_id = 0, $level = 0) { static $res = array(); foreach($category as $v) { if($v['parent_id'] == $parent_id) { $v['level'] = $level; $res[] = $v; categoryTree($category,$v['cat_id'],$level+1); } } return $res; } /** * 显示下拉框. * * @param array $list 数据数组. * @param string $cat_id 选中id. * * @return string. */ function showSelect($list, $cat_id = 0){ $str = '<select id="cat_id" name="cat_id"><option value="0">请选择</option>'; foreach($list as $row) { $select = ''; if($cat_id==$row['cat_id']){ $select = "selected"; } $str .= '<option value="'.$row['cat_id'].'">'.str_repeat(' ', $row['level']).'|---'.$row['cat_name'].'</option>'; } $str.='</select>'; return $str; } |
效果如图:
留着备用,如果有问题可以留言。