Autor Zpráva
Charlie
Profil
Ahoj lidi, právě řeším takový preoblémek. Dělám web o e-learningu. Ve scriptu generuji seznam kategorií s neomezeným počtem podkategorií pomocí rekuzre. Využívám při tom id rodičovské kategorie.

Součástí stránek jsou i kurzy a u každého chci zobrazit jeho kategorii, respektive úplnou cestu ke kategorii. A to je ten můj problémek, potřebuju poradit, jak na to.

Pro lepší představu uvádím příklad. Mám pole kategorií, které načítám z databáze, print_r($kategorie) vyoíše toto:

Array
(
[0] => Array
(
[0] => Array
(
[category_id] => 4
[category_name] => Dentists
[category_seo_name] => dentists
[category_parent_id] => 0
)

[1] => Array
(
[category_id] => 1
[category_name] => Surgery
[category_seo_name] => surgery
[category_parent_id] => 0
)

)

[1] => Array
(
[0] => Array
(
[category_id] => 2
[category_name] => Spinal Surgery
[category_seo_name] => spinal-surgery
[category_parent_id] => 1
)

)

)

Teď jenom potřebuju napsat funkci s rekurzí, která mi zobrazí cestu, např: Pharmacy >>Surgery >> Spinal Surgery

Díky za každý tip, Charlie
Charlie
Profil
Svůj problém jsem již vyřešil, samozřejmě píšu jak. Nejdřív jsem si trochu upravil pole tak, aby v $kategorie[$id_kategorie] byly vsechny informace o kategorii. Omlouvam se za pouziti jinych promennych:

echo substr(generate_tree($categories,"2"),0,-6);

function generate_tree($categories,$id,$spojovatko=" > ",$text="") {
echo $temp;
if (!is_array($categories[$id])) {
return '';
}
$category = $categories[$id];

print_r($category);

if ($category['category_parent_id'] == "0") {
return $category['category_name'].$spojovatko.$text;
} else {

return generate_tree($categories,$category['category_parent_id'],$spojovatko, $category['category_name'].$spojovatko.$text);
}

}
Toto téma je uzamčeno. Odpověď nelze zaslat.

0