我试图递归地创建一个树数组,但它向我显示了一个冗余错误,代码是
private function printChildQuestions($parentid, $level=0) {
$categorias = Categoria::model()->findAll("id_pai =".$parentid );
foreach($categorias as $c){
$space = str_repeat(' -    ', $level);
$flag=0;
foreach($c->produtos as $p){
$GLOBALS['children'][] = array("data" => $p->nome,"metadata" => array( "id" => $p->id ) );
$flag=1;
}
if($flag == 1){
$GLOBALS['arvore'][] = array("data" => $c->nome,"metadata" => array( "id" => $c->id ) ,"children" => $GLOBALS['children'] );
}
$GLOBALS['arvore'][] = array("data" => $c->nome,"metadata" => array( "id" => $c->id ) );
unset($GLOBALS['children']);
$this->printChildQuestions($c->id,$level+1);
}
}
函数的调用是 $this->printChildQuestions(0);
它返回我这些值:
produtos ---- ok
produto1 ---- ok
produtos ---- wrong line , repeated 1st line
subprodutos ---- ok
produto 2 ---- ok
subprodutos ---- wrong line , repeated 4th line
subsubprodutos ---- ok
produr 3 ---- ok
produto 3.2 ---- ok
subsubprodutos ---- wrong line, repeated 7th line
produtos3.1 ---- ok
produto 2.2 ---- ok
produtos1.2 ---- ok
正确的是
produtos ---- ok
produto1 ---- ok
subprodutos ---- ok
produto 2 ---- ok
subsubprodutos ---- ok
produr 3 ---- ok
produto 3.2 ---- ok
produtos3.1 ---- ok
produto 2.2 ---- ok
produtos1.2 ---- ok