<?php
/*****************************************************************************/
/* */
/* TreeItem - Dynamicky stromovy seznam */
/* */
/* autor: Tomas Vancura (Tomík) */
/* datum: 15.10.2007 */
/* */
/* */
/* funkce: <string> TreeItem (<array> $array, [<int> id_parent]); */
/* */
/* $array - strukturovane pole s daty */
/* $id_parent - index na rodice, odkud zacit = id_up (default: 0) */
/* return - strukturovany seznam v HTML <ul><li> */
/* */
/*****************************************************************************/
$pole = array(
array('id'=>1, 'title'=>"Filmy", 'id_up'=>0, 'pos'=>1),
array('id'=>2, 'title'=>"Drama", 'id_up'=>1, 'pos'=>1),
array('id'=>3, 'title'=>"Horor", 'id_up'=>1, 'pos'=>3),
array('id'=>4, 'title'=>"Krimi", 'id_up'=>1, 'pos'=>2),
array('id'=>5, 'title'=>"Komedie", 'id_up'=>1, 'pos'=>4),
array('id'=>6, 'title'=>"Seznamka", 'id_up'=>0, 'pos'=>2),
array('id'=>7, 'title'=>"Muzi", 'id_up'=>6, 'pos'=>2),
array('id'=>8, 'title'=>"Zeny", 'id_up'=>6, 'pos'=>1),
array('id'=>9, 'title'=>"Auta", 'id_up'=>0, 'pos'=>3),
array('id'=>10, 'title'=>"Sportovni", 'id_up'=>9, 'pos'=>1),
array('id'=>11, 'title'=>"Luxusni", 'id_up'=>9, 'pos'=>4),
array('id'=>12, 'title'=>"Nakladni", 'id_up'=>9, 'pos'=>2),
array('id'=>13, 'title'=>"Osobni", 'id_up'=>9, 'pos'=>3),
array('id'=>14, 'title'=>"Domaci", 'id_up'=>13, 'pos'=>1),
array('id'=>15, 'title'=>"Skoda", 'id_up'=>14, 'pos'=>1),
array('id'=>16, 'title'=>"Zahranicni", 'id_up'=>13, 'pos'=>2),
array('id'=>17, 'title'=>"Audi", 'id_up'=>16, 'pos'=>3),
array('id'=>18, 'title'=>"BMW", 'id_up'=>16, 'pos'=>2),
array('id'=>19, 'title'=>"Toyota", 'id_up'=>16, 'pos'=>1),
array('id'=>20, 'title'=>"Jukebox", 'id_up'=>0, 'pos'=>4)
);
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
function TreeItem($array,$id_parent=0) {
for ($i=0;$i<count($array);$i++) {
if($array[$i]['id_up'] == $id_parent) {
$tmp[$array[$i]['pos']] = $array[$i];
$tmp[$array[$i]['pos']]['out_in'] = TreeItem($array,$array[$i]['id']);
}
}
if(count($tmp)>0) {
$out = "<ul>\n";
ksort($tmp);
for($i=1;$i<=count($tmp);$i++) {
$out .= "<li>{$tmp[$i]['pos']} - {$tmp[$i]['title']} ({$tmp[$i]['id']})</li>\n";
$out .= $tmp[$i]['out_in'];
}
$out .= "</ul>\n";
}
return $out;
}
/*****************************************************************************/
echo "<ul>\n<li>pos - title (id)</li>\n</ul>\n\n";
echo TreeItem($pole);
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
?>