变态的树形实现时间:2021-09-27 00:58:45实现一个变态的树,为什么变态呢,因为他的叶子节点包含多个信息。 protected function to_html($data) { if(empty ($data)){ return $ret; } $ret .= '<ul>'; foreach ($data as $key => $value) { if(is_array($value)&&!empty ($value['types'])) { if(0 == $key) { $ret .= $value['types'].'<li>'; }else { $ret .= '<li>'; } $ret .= $this->row_to_string($value); $ret .= '</li>'; continue; } if(is_array($value)&&!empty ($value)) { $ret .= '<li>'; $ret .= $this->to_html($value); $ret.="</li>"; continue; } } $ret .= '</li>'; return $ret; } //叶子节点,节点之间的数据用空格分隔 protected function row_to_string($row){ $ret = ''; $exc=array('types'); foreach ($row as $key=>$value) { if(in_array($key, $exc)){ continue; } $ret .= $value.' '; } return $ret; } 生成的样子应该是 <ul> <li>A <ul> <li>a1 c1</li> <li>a2 c2</li> <li>B <ul><li>b1 c1</li> <li>b2 c2</li> </ul> </li> </ul> </li> <ul>