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
的数组,但在输出中我得到了重复条目,我试图取消{{1} 1}}并将其作为参考传递,但我认为这不是一个好方法,如何避免在此函数中重复,我必须添加/编辑什么?现在不能把它搞定了
答案 0 :(得分:0)
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;
}
}
我找到了解决方案,这里是代码......