stary skrypt ale moze sie komus przydac:

  1. <?
  2.  
  3. class trees{
  4. var $ids = array();
  5. function makeTree($category,$parent,$before,$after,$level){
  6. global $cat;
  7. if (!is_null($category)){
  8. foreach ($category as $item){
  9. if (!in_array($item["id"],$this->ids)){
  10. if ($item["parent"]==$parent){
  11. $s = "&nbsp;&nbsp;&nbsp;&nbsp;";
  12. $space = $s;
  13. for ($i = 1; $i <= $level; $i++) {
  14. $space .= $s;
  15. }
  16. $this->ids[] = $item["id"];
  17. echo $before.$level." - ".$item["name"].$after."<br>";
  18.  $this->makeTree($cat,$item["id"],$space."<i>","</i>",$level+1);
  19.  }
  20.  }
  21.  }
  22. }
  23. }
  24. }
  25. ?>


przyklad wywolania:

  1. <?
  2. $cat[] = array("id"=>"1","name"=>"Głośniki","parent"=>"0");
  3. $cat[] = array("id"=>"2","name"=>"Myszki","parent"=>"0");
  4. $cat[] = array("id"=>"3","name"=>"Klawiatury","parent"=>"0");
  5. $cat[] = array("id"=>"4","name"=>"Logitech","parent"=>"1");
  6. $cat[] = array("id"=>"5","name"=>"Creative","parent"=>"1");
  7. $cat[] = array("id"=>"6","name"=>"A4Tech","parent"=>"2");
  8. $cat[] = array("id"=>"7","name"=>"Logitech","parent"=>"2");
  9. $cat[] = array("id"=>"8","name"=>"Microsoft","parent"=>"3");
  10. $cat[] = array("id"=>"9","name"=>"Klawiaturex","parent"=>"3");
  11. $cat[] = array("id"=>"10","name"=>"Nowy produkt","parent"=>"6");
  12. $cat[] = array("id"=>"11","name"=>"Nowy produkt 2","parent"=>"4");
  13. $cat[] = array("id"=>"12","name"=>"Nowy produkt 2","parent"=>"11");
  14.  
  15. $tree = new trees;
  16. $tree->makeTree($cat,0,"<b>","</b>",0);
  17.  
  18. ?>