Многоуровневое меню (проверять есть ли у второго уровня третий) php

Не могу сообразить как проверять есть ли у второго уровня вложенность (на этапе формирования первого уровня меню). Нужно это по следующей причине: В меню две версии, если в первом уровне меню (у вторых уровней) нет вложенности, то бишь третьего уровня, в коде подставляется класс_a, если же у второго уровня есть вложенность, то вид отображения самого второго уровня другой, так как ему присвоить класс_б.

была задумка проверять по ключу ['parent_id'], так как у всех первых уровней он равен 0, а у второго уровня если бы у него была уже вложенность он бы был равен id пункта из второго уровня под которым он и лежит.

Но так и не сообразил как добраться до третьего уровня, что бы узнать его parent_id и подставить его как условие.

место где должна происходить проверка означено переменной "$item"

Буду рад вашей помощи или советам, код ниже! Спасибо

public function build_tree($cats, $parent_id, $sub = false)
{
    if(isset($cats[$parent_id])){
        foreach ($cats[$parent_id] as $cat){

            if(isset($cats[$cat['id']])){

                $tree .= '<li class="has-children"><a href="/category/'.$cat['slug'].'">' . $cat['name'] .'</a><ul class=" '.  ( $item  ? 'cd-dropdown-icons ' : 'cd-secondary-dropdown ')  .'is-hidden">
                <li class="go-back"><a href="#0">Назад</a></li>
                <li class="see-all"><a href="/category/'.$cat['slug'].'">Все в '. $cat['name'].' </a></li>';
            }

            $tree .= $this->build_tree($cats,$cat['id'],true);

            $tree .= '</ul></li>';

            }
            else
            {
                $tree .= '<li><a class="cd-dropdown-item item-1" href="/category/'.$cat['slug'].'">' . $cat['name'].'<h3>' . $cat['name'].'</h3>
                <p>This is the item description</p>
                </a></li>';
            }
        }
    }
    return $tree;
}

Ответы (0 шт):