\$spacer\$name" * @param int 被选中的ID,比如在做树型下拉框的时候需要用到 * @return string */ public function get_tree($myid, $str="", $sid = 0, $adds = '', $str_group = '') { $number = 1; //一级栏目 $child = $this->get_child($myid); if (is_array($child)) { $total = count($child); foreach ($child as $id => $value) { $j = $k = ''; if ($number == $total) { $j .= $this->icon[2]; } else { $j .= $this->icon[1]; $k = $adds ? $this->icon[0] : ''; } $spacer = $adds ? $adds . $j : ''; $selected = $id == $sid ? 'selected' : ''; extract($value); $pid == 0 && $str_group ? eval("\$nstr = \"$str_group\";") : eval("\$nstr = \"$str\";"); // $value['title'] = $spacer.$value['title']; $value['placeholder'] = $spacer; $this->end[] = $value; // $this->ret .= $nstr; $nbsp = $this->nbsp; $this->get_tree($id, $str, $sid, $adds . $k . $nbsp, $str_group); $number++; } } return $this->end; } public $end = array(); /** * 得到子级数组 * @param int * @return array */ public function get_child($myid) { $a = $newarr = array(); if (is_array($this->arr)) { foreach ($this->arr as $id => $a) { if ($a['pid'] == $myid) { $newarr[$id] = $a; } } } return $newarr ? $newarr : false; } /** * 生成树型结构所需要的2维数组 * @var array */ public $arr = array(); /** * 生成树型结构所需修饰符号,可以换成图片 * @var array */ public $icon = array(' │ ', ' ├─ ', ' └─ '); public $nbsp = " "; /** * @access private */ public $ret = ''; public function init($arr = array()) { for($i=0;$iarr = $arr; $this->ret = ''; return is_array($arr); } }