public function buildHtmlTree2($data, $pid = 0)
{
$str = '<ul>';
foreach($data as $key => $value)
{
$op = array();
foreach( $data as $item )
{
$str .= '<li>';
$str .= $item['login'];
$str .= '</li>';
if( $item['parent_id'] == $pid )
{
$children = $this->buildHtmlTree2( $data, $item['id'] );
if( $children ) {
$str .= $children;
}
}
}
$str .= '</ul>';
return $str;
}
}
输入数组:array(
[0] = array(
'id' => 1,
'login' => 'test1',
'parent_id' => 0
),
[1] = array(
'id' => 2,
'login' => 'test2',
'parent_id' => 1
),
[2] = array(
'id' => 3,
'login' => 'test3',
'parent_id' => 1
)
)
我正在传递它的id
, login
, parent_id
的数组,但在输出中我得到重复的条目,我试图取消设置$data[$key]
并将其作为参考,但我认为这不是一个好方法,如何避免重复在这个函数中,我要添加/编辑什么?我一时想不明白
public function buildHtmlTree2($data, $pid = 0)
{
$str = '<ul>';
foreach($data as $key => $value)
{
$op = array();
foreach( $data as $item )
{
if( $item['parent_id'] == $pid )
{
$str .= '<li>';
$str .= $item['login'];
$str .= '</li>';
$children = $this->buildHtmlTree2( $data, $item['id'] );
if( $children ) {
$str .= $children;
}
}
}
$str .= '</ul>';
return $str;
}
}
我已经找到了解决方案,这里的代码…