I have implemented recursive way for printing a categories tree to the page:
foreach ($categories as $category) {
$tree .='<li>'.$category->title.'';
if(count($category->childs)) {
$tree .=$this->childView($category);
}
}
$tree .='<ul>';
return view('categoryTreeview',compact('categories','allCategories','tree'));
}
public function childView($category){
$html ='<ul>';
foreach ($category->childs as $arr) {
if(count($arr->childs)){
$html .='<li>'.$arr->title.'';
$html.= $this->childView($arr);
}else{
$html .='<li>'.$arr->title.'';
$html .="</li>";
}
}
$html .="</ul>";
return $html;
}
for DB structure: id|title|parent_id and now i need to implement a Iterative way to print a category tree to the page, and so far i have not found a solution.
also tried
function buildTree($categories) {
$childs = array();
foreach($categories as $category)
$childs[$category->parent_id][] = $category;
foreach($categories as $category) if (isset($childs[$category->id]))
$category->childs = $childs[$category->id];
return $childs[0];
} $treez = buildTree($categories);
but also i don't have idea how to use this data non-recursively.
So my question is: Could anyone lead me on the right path? maybe i should combine foreach loops with some kind of while condition?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire