Immortal_pony,
Если не обращать внимания на то, что в конце строки всегда будет запятая.
Запятая не лишняя =) Туда после найденных дочерних категорий записывается родительская.
Результат работы скрипта: string(6) "4,5,6,1", где 4,5,6 - это дочерние категории, а 1 это родитель. В общем тут детальнее: catalogIds($route).
abbaboka,
Тебя никто не обвиняет. Тебе просто дают обратную связь, оценив твое решение с профессионального взгляда.
ОК
Вопрос решен. нашел лишний false вот тут:public function getAliasId($cat_alias){
if(!$cat_alias){
return false;
}
foreach ($this->data as $key => $value){
if($value['alias'] == $cat_alias){
return $key;
}
return false;
}
}
Итог:protected function getAliasId($cat_alias){
if(!$cat_alias){
return false;
}
foreach ($this->data as $key => $value){
if($value['alias'] == $cat_alias){
return $key;
}
}
return false;
}
protected function getDescendants($id) {
if(!$id){
return false;
}
$descendants = "";
foreach ($this->data as $element) {
if ($element['parent'] == $id) {
$descendants .= $element['id'] . ",";
$descendants .= $this->getDescendants($element['id']);
}
}
return $descendants;
}
public function catalogIds($route){
$get_alias = $this->getAliasId($route);
$descendants = $this->getDescendants($get_alias);
if(!$descendants){
return $get_alias;
}
return $descendants.$get_alias;
}