DenVeroid
Новичок
Переход по неограниченному массиву
Пытаюсь сделать неограниченное количество разделов, но пока непоучается, почемуто выводиться всё сразу, а нужно чтобы изначально выводился список который имеет "parent" нулевой, а поле перехода по ссылке выподала ветка принадлежащяя разделу по которому был переход, все остальные должны закрытые
вот сам код
$cat_array - массив разделов
id - id раздела
parent - id принадлежащий родителя
name - название раздела
Пытаюсь сделать неограниченное количество разделов, но пока непоучается, почемуто выводиться всё сразу, а нужно чтобы изначально выводился список который имеет "parent" нулевой, а поле перехода по ссылке выподала ветка принадлежащяя разделу по которому был переход, все остальные должны закрытые
вот сам код
PHP:
$cat_array=array(
array('id'=>1,'parent'=>0,'name'=>'name1'),
array('id'=>2,'parent'=>0,'name'=>'name2'),
array('id'=>3,'parent'=>0,'name'=>'name3'),
array('id'=>4,'parent'=>1,'name'=>'name4'),
array('id'=>5,'parent'=>1,'name'=>'name5'),
array('id'=>6,'parent'=>1,'name'=>'name6'),
array('id'=>7,'parent'=>4,'name'=>'name7'),
array('id'=>8,'parent'=>4,'name'=>'name8'),
array('id'=>9,'parent'=>5,'name'=>'name9'),
array('id'=>10,'parent'=>6,'name'=>'name10'),
array('id'=>11,'parent'=>6,'name'=>'name11'),
array('id'=>12,'parent'=>2,'name'=>'name12'),
array('id'=>13,'parent'=>2,'name'=>'name13'),
array('id'=>14,'parent'=>3,'name'=>'name14'),
array('id'=>15,'parent'=>3,'name'=>'name15'),
array('id'=>16,'parent'=>15,'name'=>'name15'),
array('id'=>17,'parent'=>16,'name'=>'name17'),
array('id'=>18,'parent'=>17,'name'=>'name18')
);
function level($end){
for($l=1; $l<$end; $l++){$parse .= '.';}
return $parse;
}
function ShowTree($CatID,$level='0',$cat_array) {
for($i = 0; $i < count($cat_array); $i++){
if($CatID == $cat_array[$i]['parent']){
$out .= level($level)."<b><A HREF="."?ID=".$cat_array[$i]['id'].">".$cat_array[$i]['name']."</A></b><br>";
$out .= ShowTree($cat_array[$i]['id'],$level+3,$cat_array);
}else{
$out .= level($level)."<A HREF="."?ID=".$cat_array[$i]['id'].">".$cat_array[$i]['name']."</A><br>";
}
}
return $out;
}
if($_GET['ID'] == ''){$CatID=0;}else{$CatID=$_GET['ID'];}
echo ShowTree($CatID,0,$cat_array);
$cat_array - массив разделов
id - id раздела
parent - id принадлежащий родителя
name - название раздела
Так что выдает твоя функция При echo ShowTree(0,0,$cat_array); ??